Saludos a todos compañeros del foro vengo a molestarlos por que me he topado con un problema al querer eliminar un nodo en un arbol a continuacion les pongo el codigo aplica para los tres casos
Problema: no me elimina el nodo
espero me puedan ayudar
Problema: no me elimina el nodo
Código (csharp) [Seleccionar]
public void Eliminar( NodoAB r, int dato)
{
NodoAB aux = null, aux1 = null, otro = null;
if (dato < r.Dato)
{
Eliminar(r.Izq, dato);
}
else
{
if (dato > r.Dato)
{
Eliminar(r.Der, dato);
}
else
{
otro = r;
if (otro != null)
{
if ((otro.Der == null) && (otro.Izq == null))
{
otro = null;
}
else
{
if (otro.Der == null)
{
r = otro.Izq;
}
else
if (otro.Izq == null)
{
r= otro.Der;
}
else
{
aux = otro.Izq;
aux1 = aux;
while (aux.Der != null)
{
aux1 = aux;
aux = aux.Der;
}
otro.Dato = aux.Dato;
otro = aux;
aux1.Der = aux.Izq;
aux = null;
}
}
}
else
System.Windows.Forms.MessageBox.Show("Dato no encontrado en el arbol");
}
}
}
espero me puedan ayudar