public classArbolB - Programacion-UDO

Anuncio
publicclassnodoA
{
int id;
nodoAizq;
nodoA der;
publicnodoA(int X)
{
id = X;
izq = null;
der = null;
}
}
public classArbolB
{
nodoAraiz;
publicArbolB()
{
raiz = null;
}
publicvoid insertar(nodoA nuevo)
{
if (raiz == null) raiz = nuevo;
elseinsertar(raiz, nuevo);
}
privatevoidinsertar(nodoA r, nodoA n)
{
if(n.id < r.id)
if(r.izq == null) r.izq = n;
elseinsertar(r.izq, n);
else
if(n.id > r.id)
if(r.der == null) r.der = n;
elseinsertar(r.der, n);
elseSystem.out.println(“El nodoexiste”);
return;
}
publicnodoA buscar(int valor)
{
if(vacio()) return null;
elsereturnbuscar(valor, raiz);
}
privatenodoAbuscar(int v, nodoA a)
{
if(a != null)
if(v < a.id) return buscar(v, a.izq);
else
if(v > a.id) return buscar(v, a.der);
else return a;
elsereturnnull;
}
publicbooleaneliminar(int valor)
{
if(vacio())returnfalse;
else
{
nodoA X = eliminar(valor, raiz);
if(X == null) return false;
elsereturn true;
}
}
privatenodoAeliminar(int v, nodoA a)
{
if(buscar != null)
{
if(v < a.id) a.izq = eliminar(v, a.izq);
else
if(v > a.id) a.der = eliminar(v, a.der);
else returnreemplazar(a);
return a;
}
else return null;
}
privatenodoA reemplazar(nodoA r)
{
if(r.izq == null) return r.der;
else
if(r.der == null) returnr.izq;
else
{
nodoA A = r;
nodoA B = r.izq;
while(B.der != null)
{
A = B;
B = B.der;
}
r.id = B.id;
if(A == r) A.izq = B.izq;
elseA.der = B.izq;
return r;
}
}
publicbooleanvacio()
{
returnraiz == null;
}
}
Descargar