Ejemplo n.º 1
0
 /**
  *
  * @param nodo
  */
 public void insertar(NodoRamaArbol nodo)
 {
     tamanio++;
     if (estaEnBlanco())
     {
         primero = nodo;
         primero.setAnterior(null);
         primero.setSiguiente(null);
         cuenta++;
     }
     else
     {
         NodoRamaArbol temp = primero;
         do
         {
             if (nodo.getCodigoDestino() == temp.getCodigoDestino())
             {
                 break;
             }
             else if (nodo.getCodigoDestino() < temp.getCodigoDestino())
             {
                 cuenta++;
                 if (temp == primero)
                 {
                     primero.setAnterior(nodo);
                     primero.setIzquierda(nodo.getDerecha());
                     nodo.setSiguiente(primero);
                     primero = nodo;
                     break;
                 }
                 else
                 {
                     nodo.setAnterior(temp.getAnterior());
                     nodo.setSiguiente(temp);
                     temp.getAnterior().setSiguiente(nodo);
                     temp.getAnterior().setDerecha(nodo.getIzquierda());
                     temp.setAnterior(nodo);
                     temp.setIzquierda(nodo.getDerecha());
                     break;
                 }
             }
             else if (temp.getSiguiente() == null)
             {
                 cuenta++;
                 temp.setSiguiente(nodo);
                 temp.setDerecha(nodo.getIzquierda());
                 nodo.setAnterior(temp);
                 nodo.setSiguiente(null);
                 break;
             }
             temp = temp.getSiguiente();
         } while (temp != null);
     }
 }
Ejemplo n.º 2
0
 /**
  *
  * @param nodo
  */
 public void insertar(NodoRamaArbol nodo)
 {
     if (estaEnBlanco())
     {
         primero = nodo;
         primero.setAnterior(null);
         primero.setSiguiente(null);
         cuenta++;
     }
     else
     {
         NodoRamaArbol temp = primero;
         do
         {
             if (nodo.getIdTransaccion().CompareTo(temp.getIdTransaccion()) == 0)
             {
                 break;
             }
             else if (nodo.getIdTransaccion().CompareTo(temp.getIdTransaccion()) < 0)
             {
                 cuenta++;
                 if (temp == primero)
                 {
                     primero.setAnterior(nodo);
                     primero.setIzquierda(nodo.getDerecha());
                     nodo.setSiguiente(primero);
                     primero = nodo;
                     break;
                 }
                 else
                 {
                     nodo.setAnterior(temp.getAnterior());
                     nodo.setSiguiente(temp);
                     temp.getAnterior().setSiguiente(nodo);
                     temp.getAnterior().setDerecha(nodo.getIzquierda());
                     temp.setAnterior(nodo);
                     temp.setIzquierda(nodo.getDerecha());
                     break;
                 }
             }
             else if (temp.getSiguiente() == null)
             {
                 cuenta++;
                 temp.setSiguiente(nodo);
                 temp.setDerecha(nodo.getIzquierda());
                 nodo.setAnterior(temp);
                 nodo.setSiguiente(null);
                 break;
             }
             temp = temp.getSiguiente();
         } while (temp != null);
     }
 }
        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);
        }
Ejemplo n.º 4
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);
        }