Arvore

Páginas: 3 (502 palavras) Publicado: 25 de abril de 2013
# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
struct noArv{
int info;
struct noArv *esq;
struct noArv *dir;
}; typedef struct noArv NoArv;

NoArv*abb_insere(NoArv *a,int v){
if(a==NULL){
a=(NoArv*)malloc(sizeof(NoArv));
a->info=v;
a->esq=a->dir=NULL;
}
else{
if(v<a->info)a->esq=abb_insere(a->esq,v);
else
a->dir=abb_insere(a->dir,v);
}
return a;
}

NoArv* abb_busca(NoArv *r,int v){
if(r==NULL)
return NULL;
else
if(r->info>v)return abb_busca(r->esq,v);
else
if(r->info<v)
return abb_busca(r->dir,v);
else
return r;
}

void abb_imprime_pre(NoArv *a)
{if(a!=NULL)
{
printf("&d\n",a->info);
abb_imprime_pre(a->esq);
abb_imprime_pre(a->dir);
}
}

void abb_imprime_em(NoArv *a)
{
if(a!=NULL)
{abb_imprime_em(a->esq);
printf("&d\n",a->info);
abb_imprime_em(a->dir);
}
}

void abb_imprime_pos(NoArv *a)
{
if(a!=NULL)
{abb_imprime_pos(a->esq);
abb_imprime_pos(a->dir);
printf("&d\n",a->info);
}
}

void abb_kill(NoArv *a)
{
if(a!=NULL)
{
abb_kill(a->esq);abb_kill(a->dir);
free(a);
a=NULL;
}
}

NoArv* abb_remover(NoArv *a,int v){
if(v==NULL)
return NULL;
else
if(a->info>v)a->esq=abb_remover(a->esq,v);
else
if(a->info<v)
a->dir=abb_remover(a->dir,v);
else {
/*achou o nó a remover*/
/*nó semfilhos*/
if(a->esq==NULL&&a->dir==NULL){
free(a);
a=NULL;
} /*nó só tem filho à direita*/...
Ler documento completo

Por favor, assinar para o acesso.

Estes textos também podem ser interessantes

  • A Arvore
  • arvore
  • Arvore
  • Arvore
  • Arvore
  • arvore
  • Árvore
  • árvore

Seja um membro do Trabalhos Feitos

CADASTRE-SE AGORA!