Arvore binaria

833 palavras 4 páginas
#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; }else return 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; return cont_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 que deseja remover:"); scanf("%d", &x); a=remove_no(a, x); break; case 3: a=balancear(a); break; case

Relacionados

  • Arvore Binaria
    2327 palavras | 10 páginas
  • Arvore binária
    1053 palavras | 5 páginas
  • Arvore binaria
    474 palavras | 2 páginas
  • Arvore binaria
    660 palavras | 3 páginas
  • árvore binária
    917 palavras | 4 páginas
  • Arvore Binaria
    555 palavras | 3 páginas
  • Arvore Binaria
    865 palavras | 4 páginas
  • Arvore Binaria
    1080 palavras | 5 páginas
  • Árvore Binárias
    1501 palavras | 7 páginas
  • Arvore Binaria
    691 palavras | 3 páginas