private Object inserta(NodoRamaArbol nodo, RamaArbol rama)
 {
     if (rama.esHoja())
     {
         rama.insertar(nodo);
         if (rama.getCuenta() == 5)
         {
             return(dividir(rama));
         }
         else
         {
             return(rama);
         }
     }
     else
     {
         NodoRamaArbol temp = rama.getPrimero();
         do
         {
             if (nodo.getIdTransaccion().CompareTo(temp.getIdTransaccion()) == 0)
             {
                 return(rama);
             }
             else if (nodo.getIdTransaccion().CompareTo(temp.getIdTransaccion()) < 0)
             {
                 Object obj = inserta(nodo, temp.getIzquierda());
                 if (obj is NodoRamaArbol)
                 {
                     rama.insertar((NodoRamaArbol)obj);
                     if (rama.getCuenta() == 5)
                     {
                         return(dividir(rama));
                     }
                 }
                 return(rama);
             }
             else if (temp.getSiguiente() == null)
             {
                 Object obj = inserta(nodo, temp.getDerecha());
                 if (obj is NodoRamaArbol)
                 {
                     rama.insertar((NodoRamaArbol)obj);
                     if (rama.getCuenta() == 5)
                     {
                         return(dividir(rama));
                     }
                 }
                 return(rama);
             }
             temp = temp.getSiguiente();
         } while (temp != null);
     }
     return(rama);
 }
Пример #2
0
        /**
         *
         * @param val
         */
        public void insertar(int codDes, String nomDes)
        {
            NodoRamaArbol nodo = new NodoRamaArbol(codDes, nomDes);

            if (estaVacio())
            {
                raiz = new RamaArbol();
                raiz.insertar(nodo);
            }
            else
            {
                Object obj = inserta(nodo, raiz);
                if (obj is NodoRamaArbol)
                {
                    raiz = new RamaArbol();
                    raiz.insertar((NodoRamaArbol)obj);
                    raiz.setHoja(false);
                }
            }
        }
        /**
         *
         * @param val
         */
        public void insertar(IComparable idTransaccion, int idActivo, string usuario, string empresa, string departamento, string fecha, int duracionRenta)
        {
            NodoRamaArbol nodo = new NodoRamaArbol(idTransaccion, idActivo, usuario, empresa, departamento, fecha, duracionRenta);

            if (estaVacio())
            {
                raiz = new RamaArbol();
                raiz.insertar(nodo);
            }
            else
            {
                Object obj = inserta(nodo, raiz);
                if (obj is NodoRamaArbol)
                {
                    raiz = new RamaArbol();
                    raiz.insertar((NodoRamaArbol)obj);
                    raiz.setHoja(false);
                }
            }
            Console.WriteLine(nodo);
        }
        private void busca(int idTransaccion, RamaArbol rama, RamaArbol salida)
        {
            if (rama == null)
            {
                return;
            }
            NodoRamaArbol nodo = rama.getPrimero();

            while (nodo != null)
            {
                if (!rama.esHoja())
                {
                    busca(idTransaccion, nodo.getIzquierda(), salida);
                    busca(idTransaccion, nodo.getDerecha(), salida);
                }
                if (idTransaccion.CompareTo(nodo.getIdTransaccion()) == 0)
                {
                    salida.insertar(new NodoRamaArbol(nodo.getIdTransaccion(), nodo.getIdActivo(), nodo.getUsuario(), nodo.getEmpresa(), nodo.getDepartamento(), nodo.getFecha(), nodo.getDuracionRenta()));
                }
                nodo = nodo.getSiguiente();
            }
        }
Пример #5
0
        private void busca(int codDes, RamaArbol rama, RamaArbol salida)
        {
            if (rama == null)
            {
                return;
            }
            NodoRamaArbol nodo = rama.getPrimero();

            while (nodo != null)
            {
                if (!rama.esHoja())
                {
                    busca(codDes, nodo.getIzquierda(), salida);
                    busca(codDes, nodo.getDerecha(), salida);
                }
                if (nodo.getCodigoDestino() == codDes)
                {
                    salida.insertar(new NodoRamaArbol(nodo.getCodigoDestino(), nodo.getNombreDestino()));
                }
                nodo = nodo.getSiguiente();
            }
        }
        private NodoRamaArbol dividir(RamaArbol rama)
        {
            RamaArbol     derecha = new RamaArbol(), izquierda = new RamaArbol();
            NodoRamaArbol medio = null, temp = rama.getPrimero();

            for (int i = 1; i < 6; i++, temp = temp.getSiguiente())
            {
                NodoRamaArbol nodo = new NodoRamaArbol(temp.getIdTransaccion(), temp.getIdActivo(), temp.getUsuario(), temp.getEmpresa(), temp.getDepartamento(), temp.getFecha(), temp.getDuracionRenta());
                nodo.setIzquierda(temp.getIzquierda());
                nodo.setDerecha(temp.getDerecha());
                if (nodo.getDerecha() != null && nodo.getIzquierda() != null)
                {
                    izquierda.setHoja(false);
                    derecha.setHoja(false);
                }
                switch (i)
                {
                case 1:
                case 2:
                    izquierda.insertar(nodo);
                    break;

                case 3:
                    medio = nodo;
                    break;

                case 4:
                case 5:
                    derecha.insertar(nodo);
                    break;
                }
            }
            medio.setIzquierda(izquierda);
            medio.setDerecha(derecha);
            return(medio);
        }
Пример #7
0
        private NodoRamaArbol dividir(RamaArbol rama)
        {
            RamaArbol     derecha = new RamaArbol(), izquierda = new RamaArbol();
            NodoRamaArbol medio = null, temp = rama.getPrimero();

            for (int i = 1; i < 6; i++, temp = temp.getSiguiente())
            {
                NodoRamaArbol nodo = new NodoRamaArbol(temp.getCodigoDestino(), temp.getNombreDestino());
                nodo.setIzquierda(temp.getIzquierda());
                nodo.setDerecha(temp.getDerecha());
                if (nodo.getDerecha() != null && nodo.getIzquierda() != null)
                {
                    izquierda.setHoja(false);
                    derecha.setHoja(false);
                }
                switch (i)
                {
                case 1:
                case 2:
                    izquierda.insertar(nodo);
                    break;

                case 3:
                    medio = nodo;
                    break;

                case 4:
                case 5:
                    derecha.insertar(nodo);
                    break;
                }
            }
            medio.setIzquierda(izquierda);
            medio.setDerecha(derecha);
            return(medio);
        }