Пример #1
0
        public void GraficarGrafo1(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                GraficarGrafo1(aux.getIzquierda());

                if (aux.getFilaPrimero() != null)
                {
                    NodoMatriz recorri = aux.getFilaPrimero();
                    while (recorri != null)
                    {
                        ContenidoGrafo += "Grafo" + recorri.getCodigoPrimerPais() + "--Grafo" + recorri.getCodigosegundoPais() + "\n";
                        recorri         = recorri.getSiguienteMatriz();
                    }
                }

                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            GraficarGrafo1(aux.getDerecha());
        }
Пример #2
0
        public void Graficar(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                Graficar(aux.getIzquierda());
                ////////////////////////////////////////////////// aqui empieza la inserccion a la matriz


                contadorcabeceras++;
                Contenido += "C" + aux.getCodigoDestino() + "[label = \"" + aux.getNombreDestino() + "\"   ];\n ";


                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            Graficar(aux.getDerecha());
        }
Пример #3
0
        public void Graficar3(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                Graficar3(aux.getIzquierda());
                ////////////////////////////////////////////////// aqui empieza la inserccion a la matriz


                Contenido += "->C" + aux.getCodigoDestino();
                contadorcabeceras2++;
                if (contadorcabeceras2 != contadorcabeceras)
                {
                    Contenido2 = "->C" + aux.getCodigoDestino() + Contenido2;
                }

                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            Graficar3(aux.getDerecha());
        }
Пример #4
0
        /**
         * Genera parte del contenido del archivo fuente para GraphViz
         * @return
         */
        public String getGraphNodo()
        {
            tempFlechas = "";
            String        temp        = "nodo" + primero.getCodigoDestino() + " [ label =\"";
            NodoRamaArbol tempRecorre = primero;
            int           i           = 0;
            String        detalles    = "";

            for (i = 0; i < cuenta; i++, tempRecorre = tempRecorre.getSiguiente())
            {
                temp += "<C" + i + ">|<D" + i + ">CODIGO: " + tempRecorre.getCodigoDestino() + "\\nDESTINO: " + tempRecorre.getNombreDestino() + "|";
                if (tempRecorre.getIzquierda() != null)
                {
                    tempFlechas += "nodo" + primero.getCodigoDestino() + ":C" + i + "->nodo" + tempRecorre.getIzquierda().primero.getCodigoDestino() + "\n";
                }
            }
            temp       += "<C" + i + ">\" fillcolor=\"#CCCCCC\"];\n";
            tempRecorre = primero;
            while (tempRecorre.getSiguiente() != null)
            {
                tempRecorre = tempRecorre.getSiguiente();
            }
            if (tempRecorre.getDerecha() != null)
            {
                tempFlechas += "nodo" + primero.getCodigoDestino() + ":C" + i + "->nodo" + tempRecorre.getDerecha().primero.getCodigoDestino() + "\n";
            }
            temp += tempFlechas;
            temp += detalles;
            return(temp);
        }
Пример #5
0
        public void NumeroFilas(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                NumeroFilas(aux.getIzquierda());
                Console.WriteLine(aux.getCodigoDestino());
                ////////////////////////////////////////////////// aqui empieza la inserccion a la matriz

                if (aux.getFilaPrimero() != null)
                {
                    contadorcabecerasfilasoriginal++;
                }
                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            NumeroFilas(aux.getDerecha());
        }
Пример #6
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);
        }
Пример #7
0
        public void ModificarRuta(int PrimerPais, int SegundoPais, float costo, float tiempo)
        {
            Boolean encontrado = false;

            if (PrimerPais != SegundoPais)
            {
                NodoRamaArbol modificado = busqueda(PrimerPais);

                NodoMatriz recorrido = modificado.getFilaPrimero();
                while (recorrido != null)
                {
                    if (recorrido.getCodigoPrimerPais() == SegundoPais || recorrido.getCodigosegundoPais() == SegundoPais)
                    {
                        //agregado
                        matrizcosto  = false;
                        matriztiempo = false;
                        //agregado
                        encontrado = true;
                        recorrido.setCosto(costo);
                        recorrido.setTiempo(tiempo);
                    }

                    recorrido = recorrido.getSiguienteMatriz();
                }

                if (!encontrado)
                {
                    Console.WriteLine("Ruta no existente");
                }
            }
        }
Пример #8
0
        public NodoMatriz COnseguirNodoAEliminar(int PrimerPais, int SegundoPais)
        {
            Boolean encontrado = false;

            if (PrimerPais != SegundoPais)
            {
                NodoRamaArbol modificado = busqueda(PrimerPais);

                NodoMatriz recorrido = modificado.getFilaPrimero();
                while (recorrido != null)
                {
                    if (recorrido.getCodigoPrimerPais() == SegundoPais || recorrido.getCodigosegundoPais() == SegundoPais)
                    {
                        return(recorrido);
                    }

                    recorrido = recorrido.getSiguienteMatriz();
                }

                if (!encontrado)
                {
                    Console.WriteLine("Ruta no existente");
                }
            }
            return(null);
        }
Пример #9
0
        public void Graficar5(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                Graficar5(aux.getIzquierda());
                Console.WriteLine(aux.getCodigoDestino());
                ////////////////////////////////////////////////// aqui empieza la inserccion a la matriz

                if (aux.getColumnaPrimero() != null)
                {
                    Contenido += "C" + aux.getCodigoDestino() + "->";
                    NodoMatriz recorrido = aux.getColumnaPrimero();
                    while (recorrido != null)
                    {
                        if (recorrido.getAbajoMatriz() != null)
                        {
                            Contenido += "F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + "->";
                        }
                        else
                        {
                            Contenido += "F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + ";\n";

                            break;
                        }
                        recorrido = recorrido.getAbajoMatriz();
                    }
                    while (recorrido != null)
                    {
                        if (recorrido.getAribaMatriz() != null)
                        {
                            Contenido += "F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + "->";
                        }
                        else
                        {
                            Contenido += "F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + "->C" + aux.getCodigoDestino() + ";\n";
                        }
                        recorrido = recorrido.getAribaMatriz();
                    }
                }
                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            Graficar5(aux.getDerecha());
        }
 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);
 }
Пример #11
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);
     }
 }
Пример #12
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);
     }
 }
Пример #13
0
        public void Graficar2(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                Boolean llave = false;
                Graficar2(aux.getIzquierda());
                Console.WriteLine(aux.getCodigoDestino());
                ////////////////////////////////////////////////// aqui empieza la inserccion a la matriz



                Contenido += "{ \nrank=same;\n";


                Contenido += "F" + aux.getCodigoDestino() + "[label = \"" + aux.getNombreDestino() + "\"   ];\n ";
                if (aux.getFilaPrimero() != null)
                {
                    NodoMatriz recorrido = aux.getFilaPrimero();
                    while (recorrido != null)
                    {
                        Contenido += "F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + "[label = \"Costo: " + recorrido.getCosto() + ",Tiempo: " + recorrido.getTiempo() + "\"   ];\n ";
                        recorrido  = recorrido.getSiguienteMatriz();
                        llave      = true;
                    }
                    Contenido += "} \n";
                }
                if (!llave)
                {
                    Contenido += "} \n";
                }
                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            Graficar2(aux.getDerecha());
        }
Пример #14
0
        public float getTiempo(int primerpais, int segundopais)
        {
            if (primerpais != segundopais)
            {
                NodoRamaArbol modificado = busqueda(primerpais);

                NodoMatriz recorrido = modificado.getFilaPrimero();
                while (recorrido != null)
                {
                    if (recorrido.getCodigoPrimerPais() == segundopais || recorrido.getCodigosegundoPais() == segundopais)
                    {
                        return(recorrido.getTiempo());
                    }

                    recorrido = recorrido.getSiguienteMatriz();
                }
            }
            return(0);
        }
Пример #15
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);
        }
Пример #17
0
        public string getDotMenor(int primerpais, int segundopais)
        {
            NodoRamaArbol primero       = busqueda(primerpais);
            NodoRamaArbol segundo       = busqueda(segundopais);
            string        primernombre  = primero.getNombreDestino();
            string        segundonombre = segundo.getNombreDestino();

            if (primero.getNombreDestino().Contains(" "))
            {
                primernombre = primero.getNombreDestino().Replace(" ", "_");
            }
            if (segundo.getNombreDestino().Contains(" "))
            {
                segundonombre = segundo.getNombreDestino().Replace(" ", "_");
            }
            DotMenor = "digraph lista{\n" + primernombre;
            ruta(primerpais, segundopais, true);
            DotMenor += "->" + segundonombre + "->Total" + Convert.ToInt32(cminimo(primerpais, segundopais)) + "\n}";

            return(DotMenor);
        }
        private void getGrafNodos(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                getGrafNodos(aux.getIzquierda());
                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            getGrafNodos(aux.getDerecha());
        }
Пример #19
0
        public void Graficar6(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                Graficar6(aux.getIzquierda());
                Console.WriteLine(aux.getCodigoDestino());
                ////////////////////////////////////////////////// aqui empieza la inserccion a la matriz

                if (aux.getFilaPrimero() != null)
                {
                    if (aux.getFilaPrimero() != null)
                    {
                        NodoMatriz recorrido = aux.getFilaPrimero();
                        Contenido += "F" + aux.getCodigoDestino() + "->F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + "[constraint=false];\n";
                        Contenido += "F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + "->F" + aux.getCodigoDestino() + "[constraint=false];\n";
                        while (recorrido.getSiguienteMatriz() != null)
                        {
                            Contenido += "F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + "->F" + recorrido.getSiguienteMatriz().getCodigoPrimerPais() + "C" + recorrido.getSiguienteMatriz().getCodigosegundoPais() + "[constraint=false];\n";
                            Contenido += "F" + recorrido.getSiguienteMatriz().getCodigoPrimerPais() + "C" + recorrido.getSiguienteMatriz().getCodigosegundoPais() + "->F" + recorrido.getCodigoPrimerPais() + "C" + recorrido.getCodigosegundoPais() + "[constraint=false];\n";
                            recorrido  = recorrido.getSiguienteMatriz();
                        }
                        Contenido += "\n";
                    }
                }
                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            Graficar6(aux.getDerecha());
        }
        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();
            }
        }
Пример #21
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();
            }
        }
Пример #22
0
        public void tamaniocabeceras(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                tamaniocabeceras(aux.getIzquierda());

                tamaniodelascabeceras++;
                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            tamaniocabeceras(aux.getDerecha());
        }
        private NodoRamaArbol busca(int idTransaccion, RamaArbol rama)
        {
            NodoRamaArbol nodo = rama.getPrimero();

            while (nodo != null)
            {
                if (idTransaccion.CompareTo(nodo.getIdTransaccion()) < 0)
                {
                    if (rama.esHoja())
                    {
                        return(null);
                    }
                    else
                    {
                        return(busca(idTransaccion, nodo.getIzquierda()));
                    }
                }
                else if (idTransaccion.CompareTo(nodo.getIdTransaccion()) == 0)
                {
                    return(nodo);
                }
                else if (nodo.getSiguiente() == null)
                {
                    if (rama.esHoja())
                    {
                        return(null);
                    }
                    else
                    {
                        return(busca(idTransaccion, nodo.getDerecha()));
                    }
                }
                nodo = nodo.getSiguiente();
            }
            return(null);
        }
Пример #24
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);
        }
Пример #25
0
        private NodoRamaArbol busca(int codDes, RamaArbol rama)
        {
            NodoRamaArbol nodo = rama.getPrimero();

            while (nodo != null)
            {
                if (codDes < nodo.getCodigoDestino())
                {
                    if (rama.esHoja())
                    {
                        return(null);
                    }
                    else
                    {
                        return(busca(codDes, nodo.getIzquierda()));
                    }
                }
                else if (codDes == nodo.getCodigoDestino())
                {
                    return(nodo);
                }
                else if (nodo.getSiguiente() == null)
                {
                    if (rama.esHoja())
                    {
                        return(null);
                    }
                    else
                    {
                        return(busca(codDes, nodo.getDerecha()));
                    }
                }
                nodo = nodo.getSiguiente();
            }
            return(null);
        }
Пример #26
0
        public void Graficar4Nuevo(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                Graficar4Nuevo(aux.getIzquierda());
                Console.WriteLine(aux.getCodigoDestino());

                listacabeceras.Insertar(aux.getCodigoDestino(), aux.getNombreDestino());
                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            Graficar4Nuevo(aux.getDerecha());
        }
Пример #27
0
        public void llenar(RamaArbol raiz)
        {
            if (raiz == null)
            {
                return;
            }
            //  nodos += raiz.getGraphNodo();
            NodoRamaArbol aux = raiz.getPrimero();

            while (aux != null)
            {
                llenar(aux.getIzquierda());
                llenado[contadorllenado]        = aux.getCodigoDestino();
                llenadoNombres[contadorllenado] = aux.getNombreDestino();
                contadorllenado++;
                aux = aux.getSiguiente();
            }
            aux = raiz.getPrimero();
            while (aux.getSiguiente() != null)
            {
                aux = aux.getSiguiente();
            }
            llenar(aux.getDerecha());
        }
        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);
        }
Пример #29
0
 /**
  *
  * @param primero
  */
 public void setPrimero(NodoRamaArbol primero)
 {
     this.primero = primero;
 }
Пример #30
0
 /**
  *
  * @param anterior
  */
 public void setAnterior(NodoRamaArbol anterior)
 {
     this.anterior = anterior;
 }