Arvore avl

Disponível somente no TrabalhosFeitos
  • Páginas : 3 (668 palavras )
  • Download(s) : 0
  • Publicado : 30 de junho de 2011
Ler documento completo
Amostra do texto
UNIVERSIDADE PRESIDENTE ANTÔNIO CARLOS – UNIPAC
SISTEMAS DE INFORMAÇÃO

GEOVANE ALVES DE CARVALHO
ALISON DE OLIVEIRA SILVA

aRVORE AVL

IPATINGA – MG
2011

GEOVANE ALVES DE CARVALHOALISON DE OLIVEIRA SILVA

aRVORE bINÁRIA

Trabalho apresentado ao Professor Filipe Costa Fernandes, da disciplina Estruturas de Dados II, da turma SINF3,turno noturno, do curso de Sistema de Informação

UNIVERSIDADE PRESIDENTE ANTÔNIO CARLOS
IPATINGA - 2011

Sumário

Sumário 2

código fonte 3

1 objetivo 11

2 Algoritmo original 12

3Finalizando 12

4 REFERÊNCIAS 14

código fonte

#include
#include
#include
#include

typedef int tipochave;

typedef struct registro {tipochave chave;
}registro;

typedef struct no *apontador;

typedef struct no {
int fb; //Fator de Balanceamento da AVL.registro reg; //Os dados.
apontador esq, dir; //A esquerd e a Direita.
}no;

typedef apontador tipodicionario;

//FUNÇÃO PARA RETORNAR A ALTURAARVORE.
int CalculaH(apontador *p){
if (*p == NULL){
return -1;
}
int HEsq=0 , HDir=0;
HEsq = (CalculaH(&(*p)->esq)+1);
HDir = (CalculaH(&(*p)->dir)+1);
if(HEsq > HDir){
return HEsq;
}
else{
return HDir;
}
}

//ROTAÇÂO SIMPLES PARA A DIREITA.
void RotacaoDir (apontador*Pai){
apontador aux1 = (*Pai)->dir->esq;
apontador aux2 = (*Pai)->dir;
(*Pai)->dir->esq = (*Pai);
(*Pai)->dir = aux1;
(*Pai)= aux2;
}//ROTAÇÂO SIMPLES PARA A ESQUERDA.
void RotacaoEsq (apontador *Pai){
apontador aux1 = (*Pai)->esq->dir;
apontador aux2 = (*Pai)->esq;
(*Pai)->esq->dir...
tracking img