publicvoidinsertar(intvalor){
raiz=insertar(raiz,valor);
}
privateNodoinsertar2(Nodonodo,intvalor){
if(nodo==null){
returnnewNodo(valor);
}
if(clave<nodo.getValor()){
nodo.izq=insertar(nodo.izq,valor);
}else{
nodo.der=insertar(nodo.der,valor);
}
returnnodo;
}
Eliminar un nodo
publicvoideliminarMin(){
raiz=eliminarMin(raiz);
}
privateNodoeliminarMin(Nodox){
if(x.izq==null)
returnx.der;
x.izq=eliminarMin(x.izq);
returnx;
}
Eliminar un nodo
Mtodo Hibbard
Caso 1 El nodo a borrar tiene un hijo: Reemplazar el enlace
del padre
El enlace derecho del nodo 5 cambia de apuntar al nodo 8
a apuntar al nodo 6
Eliminar un nodo
Mtodo Hibbard
Caso 2 El nodo a borrar tiene dos hijos: Borrar un nodo t que
tiene dos hijos consiste en lo siguiente:
Encontrar el sucesor x del nodo t El nodo sucesor no tiene
hijo izquierdo
Eliminar el mnimo en el subrbol derecho de t Evitando
que lo tome el recolector de basura
Colocar x en el lugar de t
Eliminar un nodo
Mtodo Hibbard. Caso 2