Upload
christian-larrea
View
372
Download
0
Embed Size (px)
Citation preview
LISTA ENLAZADAEscribir el pseudocódigo que efectué la búsqueda de un dato y a continuación elimine el dato del nodo anterior en una lista enlazada.
Solución:
Como te piden eliminar el dato anterior, conviene recorrer la lista preguntando por el dato del nodo siguiente al siguiente para cuando lo encuentres ya poder eliminar el nodo siguiente sin perder el puntero. Como es una lista enlazada nunca va a haber un null así que podrás preguntar por el siguiente del siguiente. Lo haremos de manera recursiva.
De Esta Forma:
EliminarNodo (Lista, búsqueda){ // mandas la lista y la búsqueda
Si (Lista.siguiente.siguiente.dato==busqued… // pregunto por el dato del siguiente del siguiente
aux=Lista.siguiente; //guardo el nodo siguiente para poder eliminarlo
Lista.siguiente=Lista.siguiente.siguie… // reemplazo el siguiente por el siguiente del siguiente
eliminar aux; //elimino el nodo;
}ELSE EliminarNodo(Lista.siguiente, búsqueda) //vuelvo a llamar a la función con el siguiente-
Nota:
Guardar el Primer nodo de la lista y comparar cada vez para saber si no dio la vuelta porque si no existe el número en la lista queda dando de vueltas de forma infinita.