¡Esto es facil!
Entonces, ¿tiene un nodo específico de una lista vinculada y desea eliminar el siguiente nodo?
Todo lo que tiene que hacer es hacer que el nodo especificado apunte al nodo, que está al lado del siguiente nodo inmediato.
- Cómo representar un archivo de texto con una pestaña delimitada como un DataFrame en Spark
- ¿Cómo es tu espacio de trabajo Java?
- ¿En qué lenguaje de programación se escriben la mayoría de los videojuegos?
- ¿Cómo es posible transmitir un programa escrito en un lenguaje compilado (c ++)?
- ¿Cuándo debo usar asignadores e iteradores fuera del STL? ¿Cuándo se debe proporcionar un asignador personalizado? ¿Un ejemplo tal vez?
Lo que quiero decir es:
tienes una lista …… A-> B-> C, y tenemos acceso directo a A, así que ahora, tenemos que eliminar B, y la lista se verá como …… A-> C
Cada nodo tiene 2 campos, la porción de datos y la porción de dirección.
El nodo A tiene la dirección del nodo B y el nodo B tiene la dirección del nodo C.
Entonces, todo lo que tenemos que hacer es poner la dirección del Nodo C en el lugar de la dirección del Nodo B en la parte de la dirección del Nodo A.
¿Cómo se puede hacer eso?
Aquí está el psuedocode:
temp = A.siguiente;
A.next = temp.next;
libre (temp);
Explicación:
Un nodo se define más o menos así
nodo de estructura {
datos int;
struct node * next;
};
almacenamos el nodo al lado de A en una variable temporal “temp”
Ahora, el paso principal:
A.next = temp.next
Lo que hace es almacenar la dirección almacenada en el siguiente nodo de temp (que es del Nodo C, obviamente), en el siguiente campo del Nodo A. Este paso establece un enlace entre el Nodo A y el Nodo C, y elimina el Nodo B de la lista vinculada.
Ahora, todo lo que tenemos que hacer es liberar la memoria ocupada por el Nodo B, ¡y free (temp) simplemente lo hace!