A raiz se liga a um ou mais elementos e cada um destes forma uma nova subárvore. Esses elementos são seus galhos ou filhos.
Representação:
Implementação:
package arvoreBinariaDeBusca;
public class Arvore {
private No raiz;
public Arvore()
{
raiz = null;
}
void inserir (int dado)
{
raiz = insere(raiz, dado);
}
private No insere (No r, int x)
{
if (r == null)
{
No novo = new No(x);
return novo;
} else if (r.dado < x)
{
r.esq = insere (r.esq, x);
}
else if (r.dado > x)
{
r.dir = insere(r.dir, x);
}
return r;
}
public void mostrar() //Recursivo está no caderno
{
System.out.println("Pre Ordem");
mostrarPreOrdem(raiz);
System.out.println("\nIn Ordem");
mostrarInOrdem(raiz);
System.out.println("\nPos Ordem");
mostrarPosOrdem(raiz);
}
private void mostrarPreOrdem(No no)//Exibe os elementos da direita e depois os da esquerda
{
if (no != null)
{
System.out.print(no.dado + " ");
mostrarPreOrdem(no.dir);
mostrarPreOrdem(no.esq);
}
}
private void mostrarInOrdem(No no)//Exibe os elementos da direita da raiz, volta para a raiz, exibe os elementos da esquerda dela, exibindo o da direita de cada folha
{
if (no != null)
{
mostrarPreOrdem(no.esq);
System.out.print(no.dado + " ");
mostrarPreOrdem(no.dir);
}
}
private void mostrarPosOrdem(No no)//Exibe os elementos da direita e depois os da esquerda
{
if (no != null)
{
mostrarPreOrdem(no.esq);
mostrarPreOrdem(no.dir);
System.out.print(no.dado + " ");
}
}
}
Nenhum comentário:
Postar um comentário