Exemplo n.º 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());
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
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");
                }
            }
        }
Exemplo n.º 4
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());
        }
Exemplo n.º 5
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());
        }
Exemplo n.º 6
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());
        }
Exemplo n.º 7
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);
        }
Exemplo n.º 8
0
        public void IngresarDatos(int filaCoordenada, int columnaCoordenada, float Costo, float Tiempo)
        {
            //agregado
            matrizcosto  = false;
            matriztiempo = false;
            //agregado
            NodoRamaArbol Fila    = busqueda(filaCoordenada);
            NodoRamaArbol Columna = busqueda(columnaCoordenada);
            //Ya tenemos los nodos fila y columna del que vamos a insertar
            NodoMatriz Dato = new NodoMatriz(filaCoordenada, columnaCoordenada, Costo, Tiempo);

            if (Fila.getFilaPrimero() == null)
            {
                Fila.setFilaPrimero(Dato);
                Dato.setIzquierdaCabecera(Fila);
                Dato.setAnteriorMatriz(null);
                Dato.setSiguienteMatriz(null);
            }
            else
            {
                NodoMatriz auxiliar = Fila.getFilaPrimero();

                while (auxiliar != null)
                {
                    if (auxiliar.getCodigosegundoPais() > columnaCoordenada)//Principio
                    {
                        auxiliar.setAnteriorMatriz(Dato);
                        Dato.setSiguienteMatriz(auxiliar);
                        Fila.setFilaPrimero(Dato);
                        Dato.setIzquierdaCabecera(Fila);
                        Dato.setAnteriorMatriz(null);
                        auxiliar.setIzquierdaCabecera(null);
                        break;
                    }
                    else
                    {
                        if (auxiliar.getSiguienteMatriz() != null)
                        {
                            if (auxiliar.getSiguienteMatriz().getCodigosegundoPais() > columnaCoordenada)//En Medio
                            {
                                Dato.setSiguienteMatriz(auxiliar.getSiguienteMatriz());
                                auxiliar.getSiguienteMatriz().setAnteriorMatriz(Dato);
                                Dato.setAnteriorMatriz(auxiliar);
                                auxiliar.setSiguienteMatriz(Dato);
                                Dato.setIzquierdaCabecera(null);
                                break;
                            }
                        }
                        else
                        {
                            Dato.setAnteriorMatriz(auxiliar);
                            auxiliar.setSiguienteMatriz(Dato);
                            Dato.setSiguienteMatriz(null);
                            Dato.setIzquierdaCabecera(null);
                            break;
                        }
                    }
                    auxiliar = auxiliar.getSiguienteMatriz();
                }
            }
            if (Columna.getColumnaPrimero() == null)
            {
                Columna.setColumnaPrimero(Dato);
                Dato.setArribaCabecera(Columna);
                Dato.setAribaMatriz(null);
                Dato.setAbajoMatriz(null);
            }
            else
            {
                NodoMatriz aux = Columna.getColumnaPrimero();;
                while (aux != null)
                {
                    if (aux.getCodigoPrimerPais() > filaCoordenada)//Principio
                    {
                        aux.setAribaMatriz(Dato);
                        Dato.setAbajoMatriz(aux);
                        Columna.setColumnaPrimero(Dato);
                        Dato.setArribaCabecera(Columna);
                        Dato.setAribaMatriz(null);
                        aux.setArribaCabecera(null);
                        break;
                    }
                    else
                    {
                        if (aux.getAbajoMatriz() != null)//en medio
                        {
                            if (aux.getAbajoMatriz().getCodigoPrimerPais() > filaCoordenada)
                            {
                                Dato.setAbajoMatriz(aux.getAbajoMatriz());
                                aux.getAbajoMatriz().setAribaMatriz(Dato);
                                Dato.setAribaMatriz(aux);
                                aux.setAbajoMatriz(Dato);
                                Dato.setArribaCabecera(null);
                                break;
                            }
                        }
                        else//Ultimo
                        {
                            Dato.setAribaMatriz(aux);
                            aux.setAbajoMatriz(Dato);
                            Dato.setAbajoMatriz(null);
                            Dato.setArribaCabecera(null);
                            break;
                        }
                    }
                    aux = aux.getAbajoMatriz();
                }
            }
        }