Edson Takashi Matsubara | Estruturas de Dados
O desafio consistia basicamente em implementar 2 tabelas hash e K-D Tree, dividido em 3 tarefas:
Dado o codigo_ibge retorne as informações desta cidade, construa uma tabela hash com tratamento de colisões utilizando um hash duplo para armazenar todas as cidades brasileiras do link https://github.com/kelvins/municipios-brasileiros/blob/main/json/municipios.json, a chave desta hash deve ser o codigo_ibge. Ao consultar um codigo_ibge seu código deverá retornar todas as informações desta cidade presente no banco de dados.
Dado o código_ibge, você deverá retornar o codigo_ibge das N cidades vizinhas mais próximas, onde N é um parâmetro do usuário. Para a busca pela vizinhança construa uma K-D Tree utilizando uma ABB, alternando entre latitude e longitude.
Dado o nome de uma cidade retornar todas as informações das N cidades vizinhas mais próximas, crie uma outra tabela hash que dado o nome da cidade retorne o codigo_ibge. De posse do codigo_ibge utilize o código da tarefa 2 para retornar os vizinhos mais próximos e o código da tarefa 1 para retornar as informações das cidades vizinhas, cidades com nomes iguais uma lista de nomes é retornada ao usuário ele deve escolher qual ele quer.
- Tarefa 1 - Todas as informações de uma cidade dado o código IBGE
- Tarefa 2 - Código IBGE das N cidades vizinhas mais próximas
- Tarefa 3 - Todas as informações das N cidades vizinhas mais próximas dado o nome de uma cidade + a distância em km entre elas (aproximada)
Para compilar o programa, execute o comando abaixo:
gcc main.c -o main
Em seguida, execute o programa com o comando:
./main