Pessoal me ajude a criar o metodo para remover o elemento da minha arvore ja criei o inserir e o pesquisar falta o remover,
segue o codigo criado…
public class ArvoreBinaria {
No raiz;
public void inserir(int valor) {
if (raiz == null) {
raiz = new No(valor);
} else {
No novo = new No(valor);
inserir(raiz, novo);
}
}
private void inserir(No arvore, No novo) {
if (arvore.valor == novo.valor) {
return;
}
if (novo.valor > arvore.valor) {
if (arvore.direito == null) {
arvore.direito = novo;
} else {
inserir(arvore.direito, novo);
}
} else {
if (arvore.esquerdo == null) {
arvore.esquerdo = novo;
} else {
inserir(arvore.esquerdo, novo);
}
}
}
public boolean pesquisar(int valor) {
return pesquisarElem(raiz, valor);
}
private boolean pesquisarElem(No arvore, int valor) {
if (arvore == null) {
return false;
}
if (valor == arvore.valor) {
return true;
}
if (valor > arvore.valor) {
return pesquisarElem(arvore.direito, valor);
} else {
return pesquisarElem(arvore.esquerdo, valor);
}
}
public void imprimirEmOrdem() {
emOrdem(raiz);
}
private void emOrdem(No arvore) {
if (arvore == null) {
return;
}
emOrdem(arvore.esquerdo);
System.out.println(arvore.valor);
emOrdem(arvore.direito);
}
public void imprimirPreOrdem() {
preOrdem(raiz);
}
private void preOrdem(No arvore) {
if (arvore == null) {
return;
}
System.out.println(arvore.valor);
preOrdem(arvore.esquerdo);
preOrdem(arvore.direito);
}
public void imprimirPosOrdem() {
posOrdem(raiz);
}
private void posOrdem(No arvore) {
if (arvore == null) {
return;
}
posOrdem(arvore.esquerdo);
posOrdem(arvore.direito);
System.out.println(arvore.valor);
}
}
a outra classe é a classe no
public class No {
int valor;
No direito;
No esquerdo;
public No(int valor) {
this.valor = valor;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public No getDireito() {
return direito;
}
public void setDireito(No direito) {
this.direito = direito;
}
public No getEsquerdo() {
return esquerdo;
}
public void setEsquerdo(No esquerdo) {
this.esquerdo = esquerdo;
}
}