Arvore binaria

Disponível somente no TrabalhosFeitos
  • Páginas : 4 (833 palavras )
  • Download(s) : 0
  • Publicado : 26 de junho de 2011
Ler documento completo
Amostra do texto
#include
#include

typedef struct arvore{
int valor;
struct arvore* esq;
struct arvore* dir;
}arvore;

arvore* insere(arvore *a, int x);
arvore* remove_no(arvore *a, int x);
arvore*balancear(arvore *a);
int altura (arvore *a);
void destroi(arvore *a);
int busca(arvore *a, int x);
void imp_pos(arvore *a);
void imp_pre(arvore *a);
void imp_em(arvore *a);
void imp_larg(arvore*a);

int maior(arvore *a){
int m,md;
if(a==NULL){
return -1;
}else{
m = a->valor;
md=maior(a->dir);
if(m>md){
return m;
}elsereturn md;
}

}
int conta(arvore* a){
int cont_e=0,cont_d=0;
if(a==NULL){
return 0;
}else{
cont_e=conta(a->esq);if(cont_e==0)
cont_d=conta(a->dir);
return 1;
if((cont_e||cont_d)!=0){
cont_e=cont_e+cont_d+1;
returncont_e;
}else
return -2;
}
}
int main()
{
int op, x, r, op_imp,m;
arvore *a=NULL;
while(1)
{
printf("\nDgite a opçao desejada:\n");printf("\t1-Iserir na arvore.\n");
printf("\t2-Remover no da arvore.\n");
printf("\t3-Balancear arvore\n");
printf("\t4-Buscar elemento na arvore.\n");printf("\t5-Imprimir arvore.\n");
printf("\t6-Sair.\n");
scanf("%d",&op);
switch(op)
{
case 1:
printf("Qual valor deseja inserir:");scanf("%d",&x);
a=insere(a,x);
// m=maior(a);
//printf("%maior elemento atual=%d",m);
break;
case 2:
printf("Digite o valor quedeseja remover:");
scanf("%d", &x);
a=remove_no(a, x);
break;
case 3:
a=balancear(a);
break;...
tracking img