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