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); }
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()); }
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"); } } }
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()); }
public NodoMatriz(int PrimerPais, int SegundoPais, float Costo, float Tiempo) { this.CodigoPrimerPais = PrimerPais; this.CodigosegundoPais = SegundoPais; this.Costo = Costo; this.Tiempo = Tiempo; this.AnteriorMatriz = null; this.SiguienteMatriz = null; this.AribaMatriz = null; this.AbajoMatriz = null; }
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()); }
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); }
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()); }
/** * * @param anterior */ public void setColumnaPrimero(NodoMatriz ColumnaPrimero) { this.ColumnaPrimero = ColumnaPrimero; }
/** * * @param anterior */ public void setFilaPrimero(NodoMatriz FilaPrimero) { this.FilaPrimero = FilaPrimero; }
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); } } } }
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(); } } }
public void setSiguienteMatriz(NodoMatriz SiguienteMatriz) { this.SiguienteMatriz = SiguienteMatriz; }
public void setAnteriorMatriz(NodoMatriz AnteriorMatriz) { this.AnteriorMatriz = AnteriorMatriz; }
public void setAbajoMatriz(NodoMatriz AbajoMatriz) { this.AbajoMatriz = AbajoMatriz; }
public void setAribaMatriz(NodoMatriz AribaMatriz) { this.AribaMatriz = AribaMatriz; }