Beispiel #1
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());
        }
Beispiel #2
0
        public void ELiminarMatriz(int PrimerPais, int SegundoPais)
        {
            NodoMatriz eliminar = COnseguirNodoAEliminar(PrimerPais, SegundoPais);

            if (eliminar != null)
            {
                //agregado
                matrizcosto  = false;
                matriztiempo = false;
                //agregado
                if (eliminar.getArribaCabecera() != null)
                {
                    if (eliminar.getAbajoMatriz() != null)
                    {
                        eliminar.getArribaCabecera().setColumnaPrimero(eliminar.getAbajoMatriz());
                    }
                    else
                    {
                        eliminar.getArribaCabecera().setColumnaPrimero(null);
                    }
                }
                if (eliminar.getIzquierdaCabecera() != null)
                {
                    if (eliminar.getSiguienteMatriz() != null)
                    {
                        eliminar.getIzquierdaCabecera().setFilaPrimero(eliminar.getSiguienteMatriz());
                    }
                    else
                    {
                        eliminar.getIzquierdaCabecera().setFilaPrimero(null);
                    }
                }
                if (eliminar.getAnteriorMatriz() != null)
                {
                    if (eliminar.getSiguienteMatriz() != null)
                    {
                        eliminar.getSiguienteMatriz().setAnteriorMatriz(eliminar.getAnteriorMatriz());
                        eliminar.getAnteriorMatriz().setSiguienteMatriz(eliminar.getSiguienteMatriz());
                    }
                    else
                    {
                        eliminar.getAnteriorMatriz().setSiguienteMatriz(null);
                    }
                }
                if (eliminar.getSiguienteMatriz() != null)
                {
                    if (eliminar.getAnteriorMatriz() != null)
                    {
                        eliminar.getAnteriorMatriz().setSiguienteMatriz(eliminar.getSiguienteMatriz());
                        eliminar.getSiguienteMatriz().setAnteriorMatriz(eliminar.getAnteriorMatriz());
                    }
                    else
                    {
                        eliminar.getSiguienteMatriz().setAnteriorMatriz(null);
                    }
                }
                if (eliminar.getAribaMatriz() != null)
                {
                    if (eliminar.getAbajoMatriz() != null)
                    {
                        eliminar.getAbajoMatriz().setAribaMatriz(eliminar.getAribaMatriz());
                        eliminar.getAribaMatriz().setAbajoMatriz(eliminar.getAbajoMatriz());
                    }
                    else
                    {
                        eliminar.getAribaMatriz().setAbajoMatriz(null);
                    }
                }
                if (eliminar.getAbajoMatriz() != null)
                {
                    if (eliminar.getAribaMatriz() != null)
                    {
                        eliminar.getAribaMatriz().setAbajoMatriz(eliminar.getAbajoMatriz());
                        eliminar.getAbajoMatriz().setAribaMatriz(eliminar.getAribaMatriz());
                    }
                    else
                    {
                        eliminar.getAbajoMatriz().setAribaMatriz(null);
                    }
                }
            }
        }
Beispiel #3
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();
                }
            }
        }