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();
            }
        }
Exemplo n.º 2
0
        /**
         * Genera parte del contenido del archivo fuente para GraphViz
         * @return
         */
        public String getGraphNodo()
        {
            tempFlechas = "";
            String        temp        = "nodo" + primero.getIdTransaccion() + " [ label =\"";
            NodoRamaArbol tempRecorre = primero;
            int           i           = 0;
            String        detalles    = "";

            for (i = 0; i < cuenta; i++, tempRecorre = tempRecorre.getSiguiente())
            {
                temp += "<C" + i + ">|<D" + i + ">ID TRANSACCION: " + tempRecorre.getIdTransaccion() + "\\nID ACTIVO: " + tempRecorre.getIdActivo() + "\\nUSUARIO: " + tempRecorre.getUsuario() + "\\nEMPRESA: " + tempRecorre.getEmpresa() + "\\nDEPARTAMENTO: " + tempRecorre.getDepartamento() + "\\nDURACION: " + tempRecorre.getDuracionRenta() + "|";
                if (tempRecorre.getIzquierda() != null)
                {
                    tempFlechas += "nodo" + primero.getIdTransaccion() + ":C" + i + "->nodo" + tempRecorre.getIzquierda().primero.getIdTransaccion() + "\n";
                }
            }
            temp       += "<C" + i + ">\" fillcolor=\"#CCCCCC\"];\n";
            tempRecorre = primero;
            while (tempRecorre.getSiguiente() != null)
            {
                tempRecorre = tempRecorre.getSiguiente();
            }
            if (tempRecorre.getDerecha() != null)
            {
                tempFlechas += "nodo" + primero.getIdTransaccion() + ":C" + i + "->nodo" + tempRecorre.getDerecha().primero.getIdTransaccion() + "\n";
            }
            temp += tempFlechas;
            temp += detalles;
            return(temp);
        }
        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);
        }