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);
}