Arvore Linguagem c
FACULDADES UNIFICADAS TEÓFILO OTONI
SISTEMAS DE INFORMAÇÃO – 3º PERÍODO
CLEITON HIRLE QUINTAL
TRABALHO DE PP3
Teófilo Otoni
2014
CLEITON HIRLE QUINTAL
IMPLEMENTAÇÃO CODIGO DE ABP
Trabalho apresentado à FUTO - Faculdades Unificadas de TO, como requisito parcial para obtenção de pontos na disciplina PP3 do curso de Sistemas de Informação, 3º período.
Teófilo Otoni
2014
#include
#include
typedef struct folha // crio um no com um ponteiro para esqyerda e direita
{
int info; struct folha *esq; struct folha *dir;
} arvore;
arvore* criararvore()
{
return NULL;
}
int arvorevazia(arvore *a)
{
return a == NULL;
}
void inserirfolha(arvore **a, int f)
{
if(*a == NULL) // se o apontado por a for null... { *a = (arvore*)malloc(sizeof(arvore)); //Aloco um espaço na memoria ( folha ) (*a)->esq = NULL;// esq aponta null (*a)->dir = NULL;// dir aponta null (*a)->info = f; //recebo a informação } else // enquanto esq ou dir for diferente de null faz... { if(f < (*a)->info) // se o elemento informado pelo usuario for menor faz q a raiz anterior { inserirfolha(&(*a)->esq, f); //chamo a função novamento passando como referencia o apontado por esq contendo a informação F } if(f >= (*a)->info) // se elemento informado pelo usuario for maior ou igual a raiz adiciono um novo elemento a direita { inserirfolha(&(*a)->dir, f); } }
}
void mostrarERD(arvore *a)
{
if(!arvorevazia(a)) { mostrarERD(a-> esq); // pecorro a esquerda dos elementos a esquerda da raiz para encontra o menor numero exibo e pecorro a direita do numero q foi exibido printf("%d\t", a->info); mostrarERD(a->dir); }
}
void mostrarRED(arvore *a) // exibo o elemento raiz vou para o proximo no a esquerda exibo se esq estiver apontando para null vou para a direita.......
{
if(!arvorevazia(a)) {