Código de Árvore AVL

1448 palavras 6 páginas
/*
Árvore AVL
Autor: Andrei Toledo
Matrícula: 1011100003 e-mail: andreieu@hotmail.com
Instruções de compilação e execução do programa no arquivo LEIA-ME.TXT anexado junto a esse arquivo.
Arquivo arvore.c
*/
#include typedef struct sInfo{//Estrutura da informação contida no nó int cod; //variável do dado
} info; typedef struct sNo{//Estrutura do nó struct sNo *dir, *esq, *pai; //ponteiros para os nós da direita, esquerda e pai info *dado; //ponteiro para o dado
} no; no *criarNo (info *dado){//Função para criar novo nó no *novo = (no *) malloc (sizeof(no)); //aloca memória para o novo nó novo->dado = dado; //define o dado com o novo dado digitado novo->dir = NULL; //define nó filho a direita como nulo novo->esq = NULL; //define nó filho a esquerda como nulo novo->pai = NULL; //define o nó pai como nulo return novo; // retorna o novo nó a ser inserido na árvore
}
info *criarDado(int cod){ //Função para armazenamento dos dados info *novo = (info *) malloc (sizeof(info)); //aloca memória para o dado novo->cod = cod; //define o cod com o cód inserido return novo; //retorna o dado a ser inserido no nó
}
int altura(no *t){//Função para verificar a altura de árvore ou subárvore int a,b; //variáveis para o tamanho da subárvore ou até da árvore inteira if (t == NULL)//se for vazio return 0;//retorna zero a = 1 + altura(t->esq);//calcula por recursividade a subarvore a esquerda b = 1 + altura(t->dir);//calcula por recursividade a subarvoer a direita return a > b?a:b; //retorna a maior altura
}
int verificaB(no *t){//Função para fazer a verificação do balanceamento da árvore. return altura(t->dir) - altura(t->esq); //retorna a altura da subarvore a direita menos a altura da subarvore a esquerda
}
no *simplesDir(no *t){ //Função da rotação simples para direita no *aux = t->esq; //Cria um nó auxiliar e coloca como valor o nó que vai assumir o lugar do nó a ser rotacionado no *pai = t->pai; //Nó auxiliar para o pai do nó a ser

Relacionados

  • Teste de Software
    923 palavras | 4 páginas
  • arvores binarios em java
    4192 palavras | 17 páginas
  • Aula24 25 PesquisaArvoreAVL
    2297 palavras | 10 páginas
  • Arvores AVL
    889 palavras | 4 páginas
  • Tecnologia
    2514 palavras | 11 páginas
  • ATPS Classifica o e Pesquisa completo
    3761 palavras | 16 páginas
  • TrabalhoEstrutura De Dados
    3201 palavras | 13 páginas
  • Bacharel
    1527 palavras | 7 páginas
  • ATPS CLASSIFICAÇÃO E PESQUISA
    709 palavras | 3 páginas
  • 758595
    1881 palavras | 8 páginas