Autor Tema: Pedir el numero de nodos y sus valores de un árbol en Java  (Leído 249 veces)

Heroic

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 6
    • Ver Perfil
Bueno mi problema es que cree un árbol binario en java, sin embargo los valores y su numero de nodos ya esta asignado, en lo que pido ayuda es que el código debe pedir el numero de nodos y sus valores, por ejemplo: Quiero un árbol con 5 nodos y sus valores son 1,65,3,9,0. O puede que quiera un árbol de 9 nodos y ya escribo sus valores espero haberme explicado bien, el código incluye los recorridos pero estos están bien.
Adjunto el código del árbol binario:

Código: [Seleccionar]
public class ArbolBinarioOrdenado {

    public ArbolBinarioOrdenado()
    {
        raiz = null;
    }
    int contadorNodos;
    //Creamos la clase Nodo
    class Nodo
    {
        int info;
        ArbolBinarioOrdenado.Nodo izq;
        ArbolBinarioOrdenado.Nodo der;
    }
   
    //Declaramos la propiedad raiz del arbol
    ArbolBinarioOrdenado.Nodo raiz;
   
   
    //Inicia metodo Insertar
     public void insertar(int info)
    {
        //Declaramos objeto nuevoArbol
        ArbolBinarioOrdenado.Nodo nuevoArbol = new ArbolBinarioOrdenado.Nodo();
       
        //Asigamos información
        nuevoArbol.info = info;
        nuevoArbol.izq = null;
        nuevoArbol.der = null;
       
        //Verificamos si es raiz
        if (raiz == null)
        {
            raiz = nuevoArbol;
        }
        else
        {
            //Inicializamos dos nuevos nodos
            ArbolBinarioOrdenado.Nodo anterior = null;
            ArbolBinarioOrdenado.Nodo actual = null;
           
            //Igualamos el nodo actual a la raiz
            actual = raiz;
            //Realizamos la logica de ir recorriendo el nodo actual y sus subarboles
            while (actual != null)
            {
                anterior = actual;
                if (info < actual.info)
                {
                    actual = actual.izq;
                }
                else
                {
                    actual = actual.der;
                }
            }
            //Si el nodo actual es nulo, agregamos información a sus lados
            if (info < anterior.info)
            {
                anterior.izq = nuevoArbol;       
            }
            else
            {
                anterior.der = nuevoArbol;
            }
        }
    }//Termina método Insertar
     
     private void imprimirPreOrden(ArbolBinarioOrdenado.Nodo recorriendo)
    {
        //Funcion recursiva Preorden
        //Recorrido Raiz Izq. Der.
        if (recorriendo != null)
        {
            System.out.print(recorriendo.info + " ");
            imprimirPreOrden(recorriendo.izq);
            imprimirPreOrden(recorriendo.der);
        }
    }
       
    private void imprimirInOrden(ArbolBinarioOrdenado.Nodo recorriendo)
    {
        //Funcion recursiva InOrden
        //Recorrido  Izq. Raiz Der.
        if (recorriendo != null)
        {
            imprimirInOrden(recorriendo.izq);
            System.out.print(recorriendo.info + " ");
            imprimirInOrden(recorriendo.der);
        }
    }
    private void imprimirPosOrden(ArbolBinarioOrdenado.Nodo recorriendo)
    {
        //Funcion recursiva PosOrden
        //Recorrido  Izq. Der. Raiz
        if (recorriendo != null)
        {
            imprimirPosOrden(recorriendo.izq);
            imprimirPosOrden(recorriendo.der);
            System.out.print(recorriendo.info + " ");
        }
    }
     
    public void llamarPreorden()
    {
        System.out.println("\nImpresion preorden: ");
        imprimirPreOrden(raiz);
        System.out.println();
    }
    public void llamarInorden()
    {
        System.out.println("\nImpresion inorden: ");
        imprimirInOrden(raiz);
        System.out.println();   
    }
   
    public void llamarPosorden()
    {
         System.out.println("\nImpresion postorden: ");
        imprimirPosOrden(raiz);
        System.out.println();   
    }
       
    public static void main(String[] args)
    {
        ArbolBinarioOrdenado abo  = new ArbolBinarioOrdenado();
       
       
        abo.insertar(56);
        abo.insertar(24);
        abo.insertar(76);
        abo.insertar(12);
        abo.insertar(27);
        abo.insertar(87);
        abo.insertar(45);
        abo.insertar(85);
        abo.insertar(90);
        abo.insertar(40);
        abo.insertar(54);
        abo.llamarPreorden();
        abo.llamarInorden();
        abo.llamarPosorden();       
    }   
}


     

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".