package busquedaarbolbinario;
import java.util.Scanner;
public class BusquedaArbolBinario {
public static void main(String[] args) {
int dato[]={0,0,55,50,60,40,33,11,0};
int Izq[]={0,8,0,0,3,6,7,0,0};
int Der[]={0,0,0,2,0,4,0,0,0};
Scanner leer=new Scanner(System.in);
int raiss=5, elemento, pos = 0, pad = 0, ptr, salva;
String op;
do
{
System.out.println("Dame el elemento que quieres buscar: ");
elemento=leer.nextInt();
if(raiss==0)
{
pos=0;
pad=0;
}
if(elemento==dato[raiss])
{
pos=raiss;
pad=0;
}
if(elemento<dato[raiss])
{
ptr=Izq[raiss];
salva=raiss;
}
else
{
ptr=Der[raiss];
salva=raiss;
}
while(ptr!=0)
{
if(elemento==dato[ptr])
{
pos=ptr;
pad=salva;
ptr=0;
}
if(elemento<dato[ptr])
{
salva=ptr;
ptr=Izq[ptr];
}else{
salva=ptr;
ptr=Der[ptr];
}
}
if(pos==0 || pad==salva)
{
System.out.println("Búsqueda sin resultado!");
}else{
System.out.println("El elemento " + elemento + " se encontró en " + pos);
if(pad==0)
{
System.out.println("Es el nodo raíz");
}else{
System.out.println("Su padre " + dato[pad]);
}
}
System.out.println("¿Deseas buscar otro elemento? (si/no): ");
op=leer.toString();
}while(op=="no");
}
}