Questão A
Vamos fazer a programação de uma ARVORE para testar seu conhecimento no computador.
Aqui você deve fazer um programa em linguagem C ou C++ que contenha os seguintes itens:
A estrutura de dados (struct) deverá conter os seguintes dados:
nome do município
· área total do município (em km2)
· população
A árvore deverá ter funções para inserir, percorrer e listar, que podem ser conseguidas nas aulas da disciplina (e não valerão nota, mas formam a base para ela). Então, prossiga resolvendo a avaliação:
a) Faça uma função que conte o número de municípios, percorrendo os nós cadastrados na árvore.
b) Faça uma função que mostre apenas os nomes dos municípios com mais de X habitantes. Por exemplo, X pode ser 100.000 pessoas.
c) Faça uma função que mostre a densidade demográfica de cada cidade. A densidade demográfi
Soluções para a tarefa
A árvore com as determinadas funções para inserir, percorrer e listar pode ser desenvolvida da seguinte forma:
''#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define TAM 5
#define MAX 80
int main ()
{
/* Declarando um vetor de apontadores */
char *mat[TAM];
/* Declara um buffer para efetuar a leitura */
char buffer[MAX];
int i,j;
printf("\nEntre com %d Frases:\n\n", TAM);
for (i=0; i<TAM; i++)
{
gets(buffer);
/* Aloca em mat[i] a quantidade de caracteres suficiente para armazenar o buffer */
mat[i]=(char *) calloc((strlen(buffer)+1), sizeof(char));
/* Testa se a alocação teve sucesso */
if (!mat)
{
printf ("** Erro: Memoria Insuficiente **");
for(j=0; j < i; j++)
free(mat[j]);
exit(1);
}
/* Copia a string, do buffer para o vetor de strings */
strcpy(mat[i],buffer);
}
printf("\nFrases digitadas");
for(i=0; i<TAM; i++)
printf("%s\n", mat[i]);
for(j=0; j<TAM; j++)
free(mat[j]);
}''
As árvores binárias são interessantes considerando a forma que as mesmas são percorridas. Distintos algoritmos possibilitam esse processo, entre eles estão os de busca em largura e busca em profundidade.
Bons estudos!