Piense en la lista vinculada como una “estructura de datos recursiva” donde cada nodo contiene los datos en el nodo y “el puntero” al siguiente nodo. Se asigna memoria para cada nodo en la lista vinculada.
Otra forma de pensar en el siguiente puntero es mirarlo como “el resto de la lista”.
Imagine la lista [1] -> [2] -> [3]. Aquí el nodo que contiene 1 apunta al que contiene 2. Si lo considera como el resto de la lista, entonces es [2] -> [3]. De manera similar para [2], el resto de la lista es solo [3]. Para el último, es NULL.
struct node_t {
datos int; // Datos en el nodo actual
struct node_t * next; // Contiene la dirección del siguiente nodo
}*primero;
- Soy una mujer de 22 años. Bastante confiado y exitoso. Nunca he sido amado Esto me hace sentir muy triste. ¿Qué debo hacer?
- Cuando trato de cambiar mi dirección a través de USPS, el sistema siempre piensa que mi dirección de facturación es incorrecta, ¡pero no lo es! ¿Alguién más ha tenido este problema? ¿Hay alguna forma de arreglarlo?
- No tengo mascotas ahora. Planeo retirarme y viajar mucho. ¿Cuándo podría ser el mejor momento para conseguir un perro para compañía?
- Yo soy de India. ¿Puedo invertir en opciones binarias?
- No quiero pagar facturas y morir. ¿Qué puedo hacer para aprovechar al máximo mi vida?
// Observa la recursión con cuidado. Tienes la idea
// del siguiente puntero.
vacío print_list (struct node_t * list) {
if (list == NULL) return;
printf (“% d \ n”, lista-> datos);
print_list (lista-> siguiente);
}
// Iterando a través de la lista usando el siguiente puntero
vacío print_list_iterate (struct node_t * list) {
struct node_t * cur = list;
para (; cur! = NULL; cur = cur-> next)
printf (“% d \ n”, cur-> datos);
}
Observe las dos funciones print_list () y print_list_iterate () funciones. Espero que tengas la idea del uso del siguiente puntero.
Verifique esta simulación: Lista enlazada (individual, doble), pila, cola, deque