Arvore binária interativa

655 palavras 3 páginas
//Ermesom
//Universidade Federal de Goiás
//Ciências da Computação

#include
#include

typedef void* elemento;

typedef struct no{ int chave; elemento valor; struct no* esquerdo; struct no* direito; struct no* pai;
}No;

typedef struct bt{ No* raiz;
}BT;

void inicializa_Arvore(BT* arvore)
{
arvore->raiz=NULL;
}

void erroArvoreVazia()
{
printf("\nArvore vazia!\n"); exit(1);
}

No* pesquisa_No(No* n, int chave)
{
if(n==NULL) return NULL; if(n->chave==chave) { return n; } if(chave < n->chave) { return pesquisa_No(n->esquerdo, chave); } else return pesquisa_No(n->direito, chave);
}

elemento pesquisa(BT arvore, int chave)
{
No* x; x = pesquisa_No(arvore.raiz, chave); if(x==NULL) return NULL; else return x->valor;
}

No* menor_no(No* n)
{
if(n->esquerdo==NULL) return n; else return menor_no(n->esquerdo);
}

elemento valor_menor(BT arvore)
{
if(arvore.raiz==NULL) return NULL; No* x; x=menor_no(arvore.raiz); return x->valor;
}

int chave_menor(BT arvore)
{
if(arvore.raiz==NULL) return 0; No* x; x=menor_no(arvore.raiz); return x->chave;
}

No* maior_no(No* n)
{
if(n->direito==NULL) return n; else return maior_no(n->direito);
}

elemento valor_maior(BT arvore)
{
if(arvore.raiz==NULL) return NULL; No* x; x=maior_no(arvore.raiz); return x->valor;
}

int chave_maior(BT arvore)
{
if(arvore.raiz==NULL) return 0; No* x; x=maior_no(arvore.raiz); return x->chave;
}

void imprime_pre_ordem(No* n)
{
if(n==NULL) return; printf("%d\n", n->chave); imprime_pre_ordem(n->esquerdo); imprime_pre_ordem(n->direito);

}

void listar_pre_ordem(BT arvore)
{
imprime_pre_ordem(arvore.raiz);
}

void imprime_ordem(No* n)
{
if(n==NULL) return; imprime_ordem(n->esquerdo); printf("%d\t->\t%d\n", n->chave, (int)n->valor); imprime_ordem(n->direito);
}

void listar_ordem(BT arvore)

Relacionados

  • Árvores binárias
    602 palavras | 3 páginas
  • Algorítimos
    843 palavras | 4 páginas
  • Redes industriais
    4002 palavras | 17 páginas
  • Estrutura de Dados
    16294 palavras | 66 páginas
  • Protótipo tcc
    1809 palavras | 8 páginas
  • Linguagem programação
    1676 palavras | 7 páginas
  • Lisp
    1460 palavras | 6 páginas
  • Sistemas Operacionais Salix e Guentoo
    1454 palavras | 6 páginas
  • Artigo java
    2592 palavras | 11 páginas
  • Inteligencia computacional
    28662 palavras | 115 páginas