Exemplo n.º 1
0
        public void recorridoPorNiveles()
        {
            Cola <ArbolBinario <T> > cola = new Cola <ArbolBinario <T> >();

            cola.encolar(this);
            while (!cola.esVacia())
            {
                ArbolBinario <T> nodo = cola.desencolar();
                Console.Write(nodo.getDatoRaiz() + " ");
                if (nodo.getHijoIzquierdo() != null)
                {
                    cola.encolar(nodo.getHijoIzquierdo());
                }
                if (nodo.getHijoDerecho() != null)
                {
                    cola.encolar(nodo.getHijoDerecho());
                }
            }
        }
Exemplo n.º 2
0
        //Agregar
        public void agregarNodo(ArbolBinario <T> nodoNuevo)
        {
            Cola <ArbolBinario <T> > cola = new Cola <ArbolBinario <T> >();

            cola.encolar(this);
            while (!cola.esVacia())
            {
                ArbolBinario <T> nodo = cola.desencolar();

                if (nodo.getHijoIzquierdo() != null)                 //Verifico que el elemento encolado tenga hijo izquierdo
                {
                    cola.encolar(nodo.getHijoIzquierdo());
                }
                else                                //En caso de no tener, coloco al nodo nuevo alli.
                {
                    if (nodoNuevo != null)          //Sirve para no colocar al nodo nuevo en todos los espacios vacios
                    {
                        nodo.agregarHijoIzquierdo(nodoNuevo);
                        nodoNuevo = null;                                           //Una vez colocado lo pongo nulo para no colocarlo en otros lados
                    }
                }

                if (nodo.getHijoDerecho() != null)                 //Verifico que el elemento encolado tenga hijo derecho
                {
                    cola.encolar(nodo.getHijoDerecho());
                }
                else                                               //En caso de no tener, coloco al nodo nuevo alli.
                {
                    if (nodoNuevo != null)                         //Sirve para no colocar al nodo nuevo en todos los espacios vacios
                    {
                        nodo.agregarHijoDerecho(nodoNuevo);
                        nodoNuevo = null;                                //Una vez colocado lo pongo nulo para no colocarlo en otros lados
                    }
                }
            }
        }