Eliminación de un elemento de una lista lineal relacionados |
|
Para eliminar un elemento de la lista, en primer lugar los indicadores se establecen correctamente y entonces la memoria ocupada por el nodo que se ha de eliminar desasignado (liberados). Este tutorial incluye la supresión de un nodo de las tres posiciones siguientes:
Eliminación de los principio de la listaUn elemento desde el principio de la lista se puede eliminar mediante la realización de los siguientes pasos:
void deletefrombeginning (nodo ** cabeza) { nodo * temp; si (* cabeza == NULL) volver ; algo más { temp = * cabeza; * cabeza = (* cabeza) -> siguiente; libre (temp); } } Eliminación de la final de la listaPara eliminar de la final de la lista, lo primero que recorrer hasta el último elemento segundo de la lista. Entonces, el último elemento puede ser eliminado mediante la realización de los siguientes pasos:
void deletefromend (nodo ** cabeza) {
nodo * temp, * anterior; si (* cabeza == NULL) volver ; algo más si ((* cabeza) -> siguiente == NULL) { temp = * cabeza; * cabeza = NULL; libre (temp); } algo más { prev = * cabeza; temp = (* cabeza) -> siguiente; mientras (temp-> siguiente! = NULL) { anterior = temp; temp = temp-> siguiente; } prev-> next = NULL; libre (temp); } } Eliminar después de un elemento dadoPara eliminar un elemento después de un elemento dado, en primer lugar nos encontramos con la ubicación, sayprev, del elemento después de que el elemento puede ser eliminado mediante la realización de los siguientes pasos:
void deleteafterelement (nodo * cabeza, int después) { nodo * temp, * anterior; = anterior searchunsortedlist (cabeza, después); si (prev == NULL) / * elemento "después de" no se encuentra * / volver ; temp = anterior-> siguiente; anterior-> siguiente = temp-> siguiente; libre (temp); } Borrar toda la listaAntes de que el programa termina, la lista completa se deben eliminar para que la memoria ocupada por los nodos de la lista se libera correctamente al sistema operativo. Esta tarea puede llevarse a cabo mediante la realización de los siguientes pasos:
Los pasos anteriores se repiten hasta que toda la lista se elimina. void (deletelist nodo ** cabeza) { nodo * temp; mientras (* cabeza! = NULL) { temp = * cabeza; * cabeza = (* cabeza) -> siguiente; libre (temp); } } |
Discuss Eliminación de un elemento de una lista lineal relacionados in the forums.

