Inserindo e buscando valor em Árvore Binária em java
package arvore;
public class No {
int valor;
No noEsquerda;
No noDireita;
public No(int valor){
this.valor = valor;
}
public static No raiz;
public static void inserir(int valor){
inserir(raiz, valor);
}
public static void inserir(No nodo, int valor){
if(nodo == null){
System.out.print("raiz " + valor + "\n");
raiz = new No (valor);
}else{
if(valor < nodo.valor){
if(nodo.noEsquerda != null){
inserir(nodo.noEsquerda, valor);
}else{
System.out.println("Inserido " + valor + " a esquerda de " + nodo.valor);
nodo.noEsquerda = new No (valor);
}
}else{
if(nodo.noDireita != null){
inserir(nodo.noDireita, valor);
}else{
System.out.println("Inserido " + valor + " a direita de " + nodo.valor);
nodo.noDireita = new No (valor);
}
}
}
}
public static boolean busca(No nodo, int v){
if(nodo == null){
return false;
}else{
if(nodo.valor == v){
return true;
}else{
if(nodo.valor < v){
return busca(nodo.noDireita, v);
}else{
return busca(nodo.noEsquerda, v);
}
}
}
}
public static void main (String[] args){
inserir(10);
inserir(15);
inserir(5);
inserir(4);
inserir(25);
inserir(7);
boolean encontrado = busca(raiz, 25);
if (encontrado){
System.out.println("\nEncontrado!\n");
}else{
System.out.println("\nNão encontrado ;(\n");
}
}
}
public class No {
int valor;
No noEsquerda;
No noDireita;
public No(int valor){
this.valor = valor;
}
public static No raiz;
public static void inserir(int valor){
inserir(raiz, valor);
}
public static void inserir(No nodo, int valor){
if(nodo == null){
System.out.print("raiz " + valor + "\n");
raiz = new No (valor);
}else{
if(valor < nodo.valor){
if(nodo.noEsquerda != null){
inserir(nodo.noEsquerda, valor);
}else{
System.out.println("Inserido " + valor + " a esquerda de " + nodo.valor);
nodo.noEsquerda = new No (valor);
}
}else{
if(nodo.noDireita != null){
inserir(nodo.noDireita, valor);
}else{
System.out.println("Inserido " + valor + " a direita de " + nodo.valor);
nodo.noDireita = new No (valor);
}
}
}
}
public static boolean busca(No nodo, int v){
if(nodo == null){
return false;
}else{
if(nodo.valor == v){
return true;
}else{
if(nodo.valor < v){
return busca(nodo.noDireita, v);
}else{
return busca(nodo.noEsquerda, v);
}
}
}
}
public static void main (String[] args){
inserir(10);
inserir(15);
inserir(5);
inserir(4);
inserir(25);
inserir(7);
boolean encontrado = busca(raiz, 25);
if (encontrado){
System.out.println("\nEncontrado!\n");
}else{
System.out.println("\nNão encontrado ;(\n");
}
}
}
Comentários
Postar um comentário