Arvore avl 100% funcional c

682 palavras 3 páginas
# include"stdio.h"

# include"stdlib.h"

struct avl
{
int info; int bal; struct avl *pai; struct avl *esq; struct avl *dir;
};

int avl_height ( struct avl *node )
{
/*retorna a altura da arvore*/

int esq, dir;

if ( node == NULL ) return -1;

esq = avl_height ( node->esq ); dir = avl_height ( node->dir );

if ( esq > dir ) return esq + 1; else return dir + 1;
}

struct avl *rotacaoLL(struct avl *p )
/* Rotação simples para a esquerda */
{
struct avl *q;

q = p->esq; //----------------> Realiza a rotação p->esq = q->dir; if ( q->dir != NULL ) q->dir->pai = p; q->dir = p; q->pai = p->pai; if ( p->pai != NULL ) { if ( p->pai->esq == p ) p->pai->esq = q; else p->pai->dir = q; } p->pai = q; //----------------> Rebalanceia q->bal = avl_height ( q->esq ) - avl_height ( q->dir ); p->bal = avl_height ( p->esq ) - avl_height ( p->dir );

return q;
}

struct avl *rotacaoRR ( struct avl *p )
/* Rotação simples para a direita */
{
struct avl *q;

q = p->dir; //----------------> Realiza a rotação p->dir = q->esq; if ( q->esq != NULL ) q->esq->pai = p; q->esq = p; q->pai = p->pai; if ( p->pai != NULL ) { if ( p->pai->esq == p ) p->pai->esq = q; else p->pai->dir = q; } p->pai = q; //----------------> Rebalanceia q->bal = avl_height ( q->esq ) - avl_height ( q->dir ); p->bal = avl_height ( p->esq ) - avl_height ( p->dir );

return q;
}

void avl_remove ( struct avl **node,int info )
{
int aux; struct avl * P; /*se se o elemento nao esta na arvore sai da funçao*/ if

Relacionados

  • Vossa majestade
    8463 palavras | 34 páginas
  • todos
    10787 palavras | 44 páginas
  • Teste - originbal mais atad
    22063 palavras | 89 páginas
  • transporte publico
    40965 palavras | 164 páginas
  • Consumo de óleo em motores
    32281 palavras | 130 páginas
  • Xtração do conhecimento contido em ocorrências no transporte coletivo urbano usando árvores de decisão
    10447 palavras | 42 páginas
  • estrutura de dados
    17623 palavras | 71 páginas
  • Redes de sensores
    26184 palavras | 105 páginas
  • Sistema De Banco De Dados Ramez Elmasri E Shamkant B
    432650 palavras | 1731 páginas
  • An Lise De Vibra Es Em Um Motor De Combust O Interna
    14037 palavras | 57 páginas