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 val */ public void insertar(int codDes, String nomDes) { NodoRamaArbol nodo = new NodoRamaArbol(codDes, nomDes); if (estaVacio()) { raiz = new RamaArbol(); raiz.insertar(nodo); } else { Object obj = inserta(nodo, raiz); if (obj is NodoRamaArbol) { raiz = new RamaArbol(); raiz.insertar((NodoRamaArbol)obj); raiz.setHoja(false); } } }
/** * * @param val */ public void insertar(IComparable idTransaccion, int idActivo, string usuario, string empresa, string departamento, string fecha, int duracionRenta) { NodoRamaArbol nodo = new NodoRamaArbol(idTransaccion, idActivo, usuario, empresa, departamento, fecha, duracionRenta); if (estaVacio()) { raiz = new RamaArbol(); raiz.insertar(nodo); } else { Object obj = inserta(nodo, raiz); if (obj is NodoRamaArbol) { raiz = new RamaArbol(); raiz.insertar((NodoRamaArbol)obj); raiz.setHoja(false); } } Console.WriteLine(nodo); }
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 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 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); }