dado

878 palavras 4 páginas
#include
#include

#define T 10
#define true 1
#define false 0
#define AUTO true

struct noh { int chave; int altura; struct noh *esquerda, *direita;
};

typedef struct noh noh;

// Funcoes auxliares int menu(); noh* criaNovoNoh(int valor); void insereNovoNoh(noh** arvore, noh* novo); void mostraEmOrdem(noh* arvore); void mostraPreOrdem(noh* arvore); void mostraPosOrdem(noh* arvore); noh* localizaNoh(noh* arvore, int valor); void removeNoh(noh** arvore, int valor); void vetorToarvore(int *v, noh** arvore); void mostrarNoh(noh* no);

int calculaAltura(noh *no); int maior(int a, int b); int altura(noh* no); void ajustarAlturaArvore(noh* no); int fatorBalanceamento(noh* arvore); noh* rotacaoDireita(noh* arvore); noh* rotacaoEsquerda(noh* arvore); noh* rotacaoEsquerdaDireita(noh* arvore); noh* rotacaoDireitaEsquerda(noh* arvore); void balancearArvore(noh** arvore);

// Funcao principal int main()
{
noh* arvore = NULL; // Árvore vazia noh* aux = NULL; int valor;

int vetor[T] = {3, 50, 6, 12, 23, 9, 100, 3, 11, 15};

#if AUTO vetorToarvore(vetor, &arvore); #endif

do {

switch (menu()) {

case 1: printf("Valor? "); scanf("%d", &valor); insereNovoNoh(&arvore, criaNovoNoh(valor)); break;

case 2: mostraEmOrdem(arvore); break;

case 3: mostraPreOrdem(arvore); break;

case 4: mostraPosOrdem(arvore); break;

case 7: printf("Valor? "); scanf("%d", &valor); aux = localizaNoh(arvore, valor); if (aux) printf("Noh encontrado!\n"); else printf("Noh nao encontrado!\n"); break;

case 8: printf("Valor? "); scanf("%d", &valor); removeNoh(&arvore, valor); break;

case 9: printf("Valor? ");

Relacionados

  • dados
    1138 palavras | 5 páginas
  • Dados
    363 palavras | 2 páginas
  • dados
    1135 palavras | 5 páginas
  • Dados
    81762 palavras | 328 páginas
  • Dados
    2783 palavras | 12 páginas
  • Dados
    739 palavras | 3 páginas
  • Dados
    3602 palavras | 15 páginas
  • dados
    568 palavras | 3 páginas
  • Dados
    2214 palavras | 9 páginas
  • dados
    4775 palavras | 20 páginas