public int BuscarMan()
        {
            ArbolBinarioBusqueda ArbolActual = this;

            while (!ArbolActual.Raiz.HijoDerecha.Vacio())
            {
                ArbolActual = ArbolActual.Raiz.HijoDerecha;
            }
            int Devuelve = ArbolActual.Raiz.Dato;

            ArbolActual.Raiz = null;
            return(Devuelve);
        }
        public int BuscarMin()
        {
            ArbolBinarioBusqueda ArbolActual = this;

            while (!ArbolActual.Raiz.HijoIzquierda.Vacio())
            {
                ArbolActual = ArbolActual.Raiz.HijoIzquierda;
            }
            int Devuelvo = ArbolActual.Raiz.Dato;

            ArbolActual.Raiz = null;
            return(Devuelvo);
        }
Ejemplo n.º 3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ArbolBinarioBusqueda a = new ArbolBinarioBusqueda();

            a.InsertarNodo(1);
            a.InsertarNodo(2);
            a.InsertarNodo(3);
            a.InsertarNodo(4);
            a.InsertarNodo(5);
            a.AlturaArbol();
            a.InOrden();
            a.PosOrden();
            a.PreOrden();
        }
        public void EliminarNodo(int Valor)
        {
            ArbolBinarioBusqueda NodoEliminar = BuscarNodo(Valor);

            if (!NodoEliminar.Vacio())
            {
                if (NodoEliminar.Hojas())
                {
                    NodoEliminar.Raiz = null;
                }
            }
            else
            {
                if (!NodoEliminar.Raiz.HijoIzquierda.Vacio() && !NodoEliminar.Raiz.HijoDerecha.Vacio())
                {
                    NodoEliminar.Raiz.Dato = NodoEliminar.Raiz.HijoDerecha.BuscarMin();
                }
                else
                {
                    if (NodoEliminar.Raiz.HijoIzquierda.Vacio())
                    {
                        NodoEliminar.Raiz.Dato = NodoEliminar.Raiz.HijoDerecha.BuscarMin();
                    }
                    else
                    {
                        if (NodoEliminar.Raiz.HijoIzquierda.Vacio())
                        {
                            NodoEliminar.Raiz = NodoEliminar.Raiz.HijoDerecha.Raiz;
                        }
                        else
                        {
                            NodoEliminar.Raiz = NodoEliminar.Raiz.HijoIzquierda.Raiz;
                        }
                    }
                }
            }
        }
        public ArbolBinarioBusqueda BuscarNodo(int Valor)
        {
            ArbolBinarioBusqueda ArbolBusqueda = null;

            if (!Vacio())
            {
                if (Valor == Raiz.Dato)
                {
                    return(this);
                }
                else
                {
                    if (Valor < Raiz.Dato)
                    {
                        ArbolBusqueda = Raiz.HijoIzquierda.BuscarNodo(Valor);
                    }
                    else
                    {
                        ArbolBusqueda = Raiz.HijoDerecha.BuscarNodo(Valor);
                    }
                }
            }
            return(ArbolBusqueda);
        }
 public void InicializarNodoArbol()
 {
     HijoDerecha   = null;
     HijoIzquierda = null;
     Dato          = 0;
 }