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()); }
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()); }
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()); }
/** * 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); }
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()); }
/** * 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); }
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); }
/** * * @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); } }
/** * * @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); } }
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()); }
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()); }
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()); }
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); }
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); }
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()); }
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 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(); } }
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(); } }
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); }
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); }