Red de conocimiento informático - Conocimiento del nombre de dominio - ¿Cómo entender mejor el uso de listas enlazadas en C?

¿Cómo entender mejor el uso de listas enlazadas en C?

Simplemente utilizo una metáfora para explicarlo. El resto aún depende de su propia comprensión de la programación.

Declaración: Puedes pensar en colgar un auto hacia adelante como asignar la dirección del siguiente auto al siguiente puntero del auto anterior.

En primer lugar, comparamos los nodos de la lista enlazada con los vagones del tren. Hay un gancho en la parte delantera de cada carro. Lo consideramos como un puntero, que se utiliza para conectarse al carro anterior.

A continuación, si utiliza el método de inserción de cola, primero debe encontrar la cola del tren, que es el puntero de cola de la lista vinculada. Luego engancha el vagón que deseas agregar a la parte trasera del tren. Finalmente, marque este vagón como la cola del tren (asigne la dirección al puntero de la cola).

Para utilizar el método de inserción de cabeza, primero busque la locomotora, que es el puntero de cabeza de la lista vinculada. Luego cuelgue el automóvil detrás del puntero principal en la parte trasera del automóvil que desea insertar en la lista vinculada. Finalmente, cuelgue el vagón insertado en la lista enlazada a la locomotora (asigne la dirección al puntero del cabezal).

Ejemplo:

(vagón de tren)

estructura nodo

{

int num;

nodo* siguiente;

};

nodo (locomotora)* cabeza;

nodo (cola de tren)*

(Vagón 1) nodo* m1;

(Vagón 2) nodo* m2;

//Antes de comenzar, la lista enlazada solo tiene la locomotora, no hay vagón detrás de él, y el frente también es la parte trasera.

Head=End=NULL;

//1. Método de inserción del cabezal

//Aplica para carro 1

m1=nuevo node ;

m1-gt; next=NULL;

if(Head==NULL) //Si solo la locomotora ejecuta esto

{

Head=m1; // Cuelga el primer carro al frente primero

End=m1; // Ahora solo existe este carro, por lo que es el carro de cola

}else //Si hay otros vagones además de la locomotora, ejecuta esto

{

m1-gt; next=Head; //Primero, cuelga el vagón detrás de la locomotora para el primero Detrás de un vagón primero

Head=m1; // Luego cuelga todo el tren hacia el frente

}

//2.

//Solicitar carro 2

m2=nuevo nodo;

m2-gt; next=NULL;

if(Cabeza == NULL) //Si solo la locomotora ejecuta esto

{

Head=m2; //Cuelga primero el primer vagón al frente

End = m2; //Ahora solo existe este vagón, por lo que es el vagón de cola

}else //Si hay otros vagones además de la locomotora, ejecuta esto

{

End-gt; next=m2; //Cuelga el carro en la parte trasera del auto

End=m2; //Marca este carro como la parte trasera del auto

}