Linguagem C - Árvore de Busca Binária
Por: Eduardo Cutrim de Almeida • 6/6/2015 • Trabalho acadêmico • 549 Palavras (3 Páginas) • 274 Visualizações
#include
#include
struct no_arvore{
int info;
struct no_arvore *esq, *dir;
};
struct no_arvore *CAPB (int N)
{
struct no_arvore *r;
if (N==0)
r=NULL;
else
{
r = (struct no_arvore*) calloc (1, sizeof(struct no_arvore));
printf("\nDigite um valor => ");
scanf("%i",&r->info);
r->esq = CAPB(N/2);
r->dir = CAPB(N - N/2 - 1);
}
return r;
}
void Pre_Ordem(struct no_arvore *R)
{
if (R != NULL)
{
printf ("%i ",R->info);
Pre_Ordem(R->esq);
Pre_Ordem(R->dir);
}
}
void In_Ordem(struct no_arvore *R)
{
if (R != NULL)
{
In_Ordem(R->esq);
printf ("%i ",R->info);
In_Ordem(R->dir);
}
}
void Pos_Ordem(struct no_arvore *R)
{
if (R != NULL)
{
Pos_Ordem(R->esq);
Pos_Ordem(R->dir);
printf ("%i ",R->info);
}
}
main()
{
int qtd;
struct no_arvore *Raiz;
//clrscr();
printf ("Digite o numero de nos para a arvore: ");
scanf("%i",&qtd);
printf("\n");
Raiz = CAPB(qtd);
printf ("\nPercurso PRE-ORDER \n");
Pre_Ordem (Raiz);
printf ("\nPercurso IN-ORDER \n");
In_Ordem (Raiz);
printf ("\nPercurso POS-ORDER \n");
Pos_Ordem (Raiz);
printf("\n\n");
system("PAUSE");
}
...