sexta-feira, 30 de agosto de 2013

2013/2-PA-2013.08.30: TAD árvore em Java: notas aula

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
}

Nenhum comentário:

Postar um comentário