Arvore binaria de busca - codigo em c

Disponível somente no TrabalhosFeitos
  • Páginas : 4 (770 palavras )
  • Download(s) : 0
  • Publicado : 3 de julho de 2012
Ler documento completo
Amostra do texto
/**
* Implementacao do TAD Arvore Binaria de Busca
* (c) 2012 by Aluno: Francisco de Araujo Costa - SI1111008-21.
* AED I - IFMA, Monte Castelo, Sao Luis, MA.
*/

#include
#include#include "ArvoreBinaria.h"


struct arvBinariaDeBusca
{
float info;
struct arvBinariaDeBusca* esq;
struct arvBinariaDeBusca* dir;
};



ABB* criar(float conteudo){
ABB *arv = (ABB*)malloc(sizeof(ABB));
arv->info = conteudo;
arv->esq = NULL;
arv->dir = NULL;
return arv;
}


ABB* inserir(ABB* arv, float conteudo){if(arv!=NULL){ // testa se a árvore já existe
if(conteudo < infoRaiz(arv)){ //se o conteudo é menor que o da raiz atual, inserção à esquerda
if(arv->esq==NULL){ //verificase à esquerda existe folha
arv->esq = criar(conteudo);
return arv;
}
else
inserir(arv->esq,conteudo);//em existindo folha, chama recursivamente à esquerda
}
else if (conteudo > infoRaiz(arv)){ //se o conteúdo é maior que o da raiz atual, inserção à direitaif(arv->dir==NULL){ //verifica se à direita existe folha
arv->dir = criar(conteudo);
return arv;
}
elseinserir(arv->dir, conteudo);//em existindo folha, chama recursivamente à direita
}
}
else{
return NULL; //retorna NULL caso a árvore não exista
}
}int contem(ABB* arv, float conteudo){
if(arv==NULL) return CHAVE_NAO_ENCONTRADA;
if(arv!=NULL){
if(conteudo < infoRaiz(arv))
contem(arv->esq, conteudo);else if(conteudo > infoRaiz(arv))
contem(arv->dir, conteudo);
else if(infoRaiz(arv)==conteudo) return SUCESSO;
}
}


float infoRaiz(ABB*...
tracking img