Você está na página 1de 4

public class nodo {

char dato;
nodo izq, der;
//Constructores
nodo (char Elem){
dato = Elem;
nodo izq, der = null;
}

import java.util.*;

public class arbol1 {


nodo raiz=null;
int c=0;

public void insertar(nodo nuevo){

if (raiz == null)
raiz = nuevo;
else
{
nodo anterior = null, reco=raiz;
int info=nuevo.dato;
while (reco != null)
{
anterior = reco;
if (info < reco.dato)
reco = reco.izq;
else
reco = reco.der;
}
if (info < anterior.dato)
anterior.izq = nuevo;
else
anterior.der = nuevo;
}
}

public void Inorden (nodo aux){


if(aux != null)
{
Inorden (aux.izq);
System.out.print(aux.dato + " ");
Inorden (aux.der);
}
}

public void preorden (nodo aux){


if(aux != null)
{
System.out.print(aux.dato + " ");
preorden(aux.izq);
preorden(aux.der);
}

}
public void postorden (nodo aux){
if(aux != null)
{
System.out.print(aux.dato + " ");
postorden(aux.izq);
postorden(aux.der);
System.out.print(aux.dato + " ");
}

}
public void contar (nodo aux) {
if (aux !=null)
{
//System.out.println(aux.dato +" ");
c=c+1;
contar (aux.der);
}
}

public static void main (String[]args)


{
arbol1 arb = new arbol1 ();
Scanner l=new Scanner(System.in);
int op;
char ele;
System.out.println("1.- Insertar nodo");
System.out.println("2.- Imprimir en orden");

System.out.println("3.- Imprimir en
preorden");
System.out.println("4.- Imprimir en
postorden");
System.out.println("5.- contar");
System.out.println("6.- contar por ramas");
System.out.println("7.- informar si ambas
ramas tienen la misma cantidad de nodos");
System.out.println(" 8- Salir");
System.out.println(" ");
do{
System.out.println("Seleccione una opcion
del 1 al 3");
op=l.nextInt();
switch (op){

case 1:{System.out.println("Introduzca un
caracter del abecedario");
ele=l.next().charAt(0);
if(ele>='a' &
ele<='z')ele=Character.toUpperCase(ele);
arb.insertar(new nodo(ele));
break;
}

case 2:{
arb.Inorden(arb.raiz);
break;
}

case 3:{
arb.preorden(arb.raiz);
break;
}
case 4:{
arb.postorden(arb.raiz);
break;
}

case 5:{
arb.contar(arb.raiz);
System.out.println("Total"+ arb.c);
break;
}
case 6:{ arb.c=0;
if(arb.raiz!=null)arb.contar(arb.raiz.izq);
System.out.println("Total izquierda "+arb.c);
arb.c=0;
if (arb.raiz!=null) arb.contar(arb.raiz.der);
System.out.println("Total derecha"+arb.c);
break;
}
case 7:{ arb.c=0;
int cizq=0;
if (arb.raiz!=null) arb.contar(arb.raiz.izq);
System.out.println("Total izquierda"+arb.c);
cizq=arb.c;
int cder=0;
arb.c=0;
if(arb.raiz!=null)arb.contar(arb.raiz.der);
System.out.println("Total derecha"+arb.c);
cder=arb.c;
if(cizq==cder)System.out.println("las dos ramas
tiene la misma cantidad");
else System.out.println("No tienen la misma
cantida");
break;
}
}
}

while(op!=8);

Você também pode gostar