sábado, 31 de agosto de 2013

2013/2-PA-2013.08.30: TAD Árvore em Java (PARCIAL)

TAD Árvore em Java

Classe Nó

public class No{
  int chave;
  No esquerda, direita;
  
  public No(int chave){ // construtor
    this.chave = chave;
this.direita = null;
this.esquerda = null;
  }
  // No no = new No(10);
}

Classe ArvoreBinaria

public class ArvoreBinaria{
  No raiz;  
  // método main - principal
  public static void main(String args[]){  
  }

  // pesquisa
// descricao textual
  No pesquisar(No no, int chave){
    if (no != null) {// 1) Se o nó for valido (existente)
      if (no.chave == chave){// 1.1) Se a chave for igual a chave do no
        return no;// 1.1.1) retornar a chave (achei!)
      } // 1.2) caso contrario:
 else if (chave < no.chave){// 1.2.1) Se a chave for menor que a chave do nó
        return pesquisar(no.esquerda, chave);// 1.2.1.1) navegar para a esquerda do nó
      } else if (chave > no.chave){// 1.2.2) Senão se a chave for maior que a chave do no
        return pesquisar(no.direita, chave);// 1.2.2.1) navegar para a direita do nó
      }// 1.2.3) voltar ao passo 1
    } else {// 2) Senão (no invalido)
// 2.1) informar que a chave nao existe  
 return null;
}
  }  
  // insercao
  No inserir (No no, int chave){
if (no == null){// 1) se o no for nulo
 no = new No(chave);// 1.1) criar o novo no
 return no;// 1.2) retornar o novo no criado
}else// 2) Senão
 if(chave < no.chave){// 2.1) Se a chave for menor que a chave do no
   return inserir(no.esquerda, chave);// 2.1.1.) inserir pela esquerda
 } else 
 if (chave > no.chave){// 2.3) Senão se a chave for maior que a chave do nó
   return inserir(no.direita, chave);// 2.3.1) inserir pela direita
   return null;// 2.4.1) A chave jah existe
 } else {// 2.4) Senão
 }
  }
  
  // caminhamentos
  
  a.raiz = new No(10);
}

Nenhum comentário:

Postar um comentário