Arvore binaria

537 palavras 3 páginas
public class ArvoreBinaria { // atributo private No raiz; // construtor public ArvoreBinaria () { raiz = null; } // insere public void insere (int dado) { No novo = new No(); novo.dado = dado; novo.esquerda = novo.direita = null; if(raiz == null) { novo.pai = null; raiz = novo; } else { No aux = raiz; No pai = null; boolean noEsq = false; while (aux != null) { if (aux.dado == dado) return; //o "dado" já existe else if (aux.dado < dado) { pai = aux; aux = aux.direita; //passo a procurar aa direita noEsq = false; } else { pai = aux; aux = aux.esquerda; //passo a procurar aa esquerda noEsq = true; } } if (noEsq) pai.esquerda = novo; else pai.direita = novo; novo.pai = pai; } } // remove public void remove (No n) { if (raiz == null) throw new RuntimeException ("Lista vazia."); else { int numFilhos = n.numeroFilhos(); if (numFilhos == 0) { // folha if (n == raiz) raiz = null; else { if (n.pai.dado > n.dado) n.pai.esquerda = null; else n.pai.direita = null; } } else if (numFilhos == 1) { // tem 1 filho No filho; if (n.esquerda != null) filho = n.esquerda; else filho = n.direita; if (n == raiz) raiz = filho; else { if (n.pai.dado > n.dado) n.pai.esquerda = filho; else

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