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