Está en la página 1de 1

void elimina(ABB &,int)

case: cout<<valor a eliminarcin>>n;


elimina(arbol,n);break;
void elimina(ABB &arbol,int x)
{
if(arbol==NULL)return;
if(x<arbol->valor)elimina(arbol->izq,x);
if(x>arbol->valor)elimina(arbol->der,x);
else
if(arbol->izq==arbol->der)
{
delete arbol;
arbol=NULL;
}
else if(arbol->izq==NULL)
{
p1=arbol;
arbol=arbol->der;
delete p1;
}
else if(arbol->der==NULL)
{
p1=arbol;
arbol=arbol->izq;
delete p1;
}
else
{
p1=arbol->der;
p2=arbol->der;
while(p2->izq)
p2=p2->izq;

p2->izq=arbol->izq;
delete(arbol);
arbol=p1
}
}

También podría gustarte