Arvore binaria

Disponível somente no TrabalhosFeitos
  • Páginas : 2 (252 palavras )
  • Download(s) : 0
  • Publicado : 12 de abril de 2013
Ler documento completo
Amostra do texto
Arvore Binaria
/* Este programa criar uma arvore binaria */
/* autor: Cao Ji Kan Data: 20/03/2013 */
#include <stdlib.h>
#include <stdio.h>

struct treeNo {
char info;struct treeNo *left;
struct treeNo *right;
};

struct treeNo *root; /* primeiro no da arvore */
struct treeNo *geratree(int n);
void emOrdem(treeNo *no);
void posOrdem(treeNo *no);
voidpreOrdem(treeNo *no);

main()
{
root = NULL; /* inicializa a ra¡z */
int n;
printf("Digite o numeros de nos para uma arvore binaria!\n");
scanf("%d",&n);
root =geratree(n);
//printf("Impressao da arvore binaria:\n");
//implementação
printf(" IN ORDEM \n");
emOrdem(root);

printf("POS ORDEM \n");
posOrdem(root);printf("PRE ORDEM \n");
preOrdem(root);

system("pause");
}

struct treeNo *geratree(int n)
{
struct treeNo *newno;
int ne, nd;
char x;

if (n == 0)
return NULL;else
{ ne = n/2;
nd = n-1-ne;
printf("Digite uma letra: ");
getchar(); // pegar "enter". sem este nao funcina para C
scanf("%c",&x);

newno =(struct treeNo *) malloc(sizeof(struct treeNo));
if(!newno) {
printf("sem memoria\n");
exit(0);
}
newno->info = x;
newno->left =geratree(ne);
newno->right = geratree(nd);

return newno;
}
}

void emOrdem(treeNo *no){
if(no != NULL){
emOrdem(no->left);printf("%c\n", no->info);
emOrdem(no->right);
}
}

void posOrdem(treeNo *no){
if(no != NULL){
posOrdem(no->left);
posOrdem(no->right);printf("%c\n", no->info);
}
}

void preOrdem(treeNo *no){
if(no != NULL){
printf("%c\n", no->info);
preOrdem(no->left);
preOrdem(no->right);
}
}
tracking img