protected Nodo buscar(Nodo raizSub, Comparador buscado) { if (raizSub == null) { return(null); } else if (buscado.igualQue(raizSub.valorNodo())) { return(raizSub); } else if (buscado.menorQue(raizSub.valorNodo())) { return(buscar(raizSub.subarbolIzdo(), buscado)); } else { return(buscar(raizSub.subarbolDcho(), buscado)); } }
protected Nodo localizar(Nodo raizSub, Comparador buscado) { if (raizSub == null) { return(null); } else if (buscado.igualQue(raizSub.valorNodo())) { return(raiz); } else if (buscado.menorQue(raizSub.valorNodo())) { return(localizar(raizSub.subarbolIzquierdo(), buscado)); } else { return(localizar(raizSub.subarbolDerecho(), buscado)); } }
//PARTE DE LOCALIZAR //COMO PARAMETRO NODO //COMPARADOR PARA HACER LA ITERACION //LOCALIZAR LO QUE HACE ES A QUE NODO Y DE QUE LADO SE VA A IR protected Nodo localizar(Nodo raizSub, Comparador buscado) //CREADO COMO UN TIPO DE ACCESIVIDAD PROTEGIDO { if (raizSub == null) //SI LA RAIZ ES NULA { return(null); } else if (buscado.igualQue(raizSub.valorNodo())) //BUSQUEDA RECURSIVA PROPIA ENTRE TODO EL ARBOL { return(raiz); //SI ES IGUAL NOS VA A RETORNAR LA RAIZ } else if (buscado.menorQue(raizSub.valorNodo())) { return(localizar(raizSub.subarbolIzquierdo(), buscado)); //ME VA A DEVOLVER ES LOCALIZAR EL NODO DE DONDE SE ENCUETRA Y YA SABEMOS SI LO VAMOS A DIRECCIONAR A LA IZQUIERA } else { return(localizar(raizSub.subarbolDerecho(), buscado)); //SI NO ENVIARLE EL DERECHO } }
public Nodo getNodo(Object n, Comparador cmp) { Nodo raizTmp = tree.raizArbol(); if (tree.esVacio()) { return(null); } while (raizTmp.subarbolDcho() != null || raizTmp.subarbolIzdo() != null) { if (cmp.mayorQue(n)) { if (raizTmp.subarbolDcho() != null) { raizTmp = raizTmp.subarbolDcho(); } else { return(null); } } else { if (raizTmp.subarbolIzdo() != null) { raizTmp = raizTmp.subarbolIzdo(); } else { return(null); } } if (cmp.igualQue(n)) { return(raizTmp); } } return(raizTmp); }
protected Nodo buscarDatoAvl(Nodo raizSub, Comparador dato) { if (raizSub == null) { return(null); } else if (dato.igualQue(raizSub.valorNodo())) { count++; return(raizSub); } else if (dato.menorQue(raizSub.valorNodo())) { count++; return(buscarDatoAvl(raizSub.subArbolIzdo(), dato)); } else { count++; return(buscarDatoAvl(raizSub.subArbolDrcho(), dato)); } }