public class arvore2 {
public nodo raiz;
public void adicionar(int valor) {
nodo novonodo = new nodo();
novonodo.valor = valor;
if (raiz == null) {
raiz = novonodo;
}else{
adicionar (raiz, valor);
}
}
public void adicionar(nodo pai, int valor) {
if (pai.valor < valor) {
if (pai.direito == null) {
pai.direito = new nodo();
pai.direito.valor = valor;
} else {
adicionar(pai.direito, valor);
}
} else {
if (pai.esquerdo == null) {
pai.esquerdo = new nodo();
pai.esquerdo.valor = valor;
} else {
adicionar(pai.esquerdo, valor);
}
}
}
public void prefixado (nodo nodoatual){
if (nodoatual == null){
return;
}
System.out.println (nodoatual.valor);
prefixado (nodoatual.esquerdo);
prefixado (nodoatual.direito);
}
public void central (nodo nodoatual){
if (nodoatual == null){
return;
}
central (nodoatual.esquerdo);
System.out.println (nodoatual.valor);
central (nodoatual.direito);
}
public void posfixado (nodo nodoatual){
if (nodoatual == null){
return;
}
posfixado (nodoatual.esquerdo);
posfixado (nodoatual.direito);
System.out.println (nodoatual.valor);
}
public void buscar (int valor, nodo nodoatual){
if (nodoatual == null){
return;
}
if (nodoatual.valor == valor){
System.out.println(" valor encontrado: " + nodoatual);
}else{
if (valor < nodoatual.valor){
buscar (valor, nodoatual.esquerdo);
}else if (valor > nodoatual.valor){
buscar (valor, nodoatual.direito);
}
}
}
public static void main(String[] args){
arvore2 a = new arvore2();
a.adicionar(5);
a.adicionar(3);
a.adicionar(2);
a.adicionar(4);
a.adicionar(7);
a.adicionar(6);
a.adicionar(8);
a.prefixado (a.raiz);
System.out.println(" ");
a.central (a.raiz);
System.out.println(" ");
a.posfixado (a.raiz);
System.out.println(" __buscar__");
a.buscar (8, a.raiz);
}
}