Arvore binaria

495 palavras 2 páginas
#ifndef ARVOREBINARIA_H_INCLUDED
#define ARVOREBINARIA_H_INCLUDED
#include
#include

typedef struct No { struct No *esq; struct No *dir; int dado; int elemento;
} No;

No *CriarArvore ();

void InserirElemento (No **, int);

No *ProcurarElemento (No *, int);

No *menorValor (No **);

void removerNo (No **raiz);

int remover (No **, int);

int exibirEmOrdem(No *);

int exibirPreOrdem(No *);

int exibirPosOrdem(No *);

#endif // ARVOREBINARIA_H_INCLUDED //---------------------------------------------------------------------------------------------------------------------------

#include "ArvoreBinaria.h"

// Criar
No *CriarArvore () { return NULL;
}

// Inserir void InserirElemento (No **pRaiz, int elemento) {

if (*pRaiz == NULL) { *pRaiz = malloc(sizeof(No)); (*pRaiz)->dado = elemento; (*pRaiz)->esq = NULL; (*pRaiz)->dir = NULL; }

if (elemento < (*pRaiz)->dado) { InserirElemento(&((*pRaiz)->esq), elemento); }

if (elemento > (*pRaiz)->dado) { InserirElemento(&((*pRaiz)->dir), elemento); }
}

No *ProcurarElemento (No *pRaiz, int elemento) { // Lista vazia if (pRaiz == NULL ) { return NULL; }

if (elemento == pRaiz->dado) { return pRaiz; }

if (elemento < pRaiz->dado) { return ProcurarElemento(pRaiz->esq, elemento); }

if (elemento > pRaiz->dado) { return ProcurarElemento(pRaiz->dir, elemento); }
}
No *menorValor (No **raiz)
{
No *aux = *raiz; if ((*raiz)->esq == NULL) { *raiz = (*raiz)->dir; return aux; } else { return menorValor(&((*raiz)->esq)); }
}

void removerNo (No **raiz)
{
No *pos = *raiz;

if ((*raiz)->esq == NULL && (*raiz)->dir == NULL) { *raiz = NULL; } else if ((*raiz)->esq == NULL) { *raiz =

Relacionados

  • Arvore Binaria
    2327 palavras | 10 páginas
  • Arvore binária
    1053 palavras | 5 páginas
  • Arvore binaria
    474 palavras | 2 páginas
  • Arvore binaria
    660 palavras | 3 páginas
  • árvore binária
    917 palavras | 4 páginas
  • Arvore Binaria
    555 palavras | 3 páginas
  • Arvore Binaria
    865 palavras | 4 páginas
  • Arvore Binaria
    1080 palavras | 5 páginas
  • Árvore Binárias
    1501 palavras | 7 páginas
  • Arvore Binaria
    691 palavras | 3 páginas