Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Recorrido y Visualización de una Lista Enlazada | Implementación de Estructuras de Datos
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Dominio de las Estructuras en C

bookRecorrido y Visualización de una Lista Enlazada

Después de aprender cómo crear y conectar nodos, es necesario verificar que dicha lista funcione correctamente.

Para ello, se debe escribir una función simple que muestre toda la lista.

La función recibirá un puntero al área de memoria donde se almacena el nodo principal (primero) de la lista.

void printList(struct Node* head) {}

Luego, se creará un nodo temporal current, con el cual se recorrerá toda la lista. El contenido del nodo current será igual al contenido del nodo actual de la lista.

struct Node* current = head;

Para iterar a través de la lista, se utiliza el ciclo while(){} con la condición necesaria, es decir, hasta encontrar un nodo cuyo campo next sea NULL.

Note
Nota

El nodo temp (temporal) cumple la función de nodo búfer. Es necesario para almacenar temporalmente (y eliminar) el contenido del nodo actual. Si se borra inmediatamente el nodo actual, se perderá la conexión con el siguiente nodo, lo que significa que se perderá el acceso a la lista.

while (current != NULL) { }
printf("\n");

Dentro del ciclo, se mostrará el contenido del campo data del nodo actual y se modificará el campo next para avanzar al siguiente nodo.

printf("%d ", current->data);
current = current->next;

En cuanto se encuentra un nodo cuyo campo next es igual a NULL, el bucle dejará de mostrar el contenido de los nodos y la función finalizará.

Tarea

Swipe to start coding

Implementar una lista enlazada simple con asignación dinámica de memoria. La tarea consiste en completar las funciones printList y freeList.

  1. Implementar una función printList con un único parámetro struct Node* head.

    • Dentro de printList, declarar una variable current e inicializarla con head.
    • Utilizar un bucle while para iterar mientras current no sea NULL.
    • En cada iteración, imprimir el campo data de current y avanzar current al siguiente nodo.
    • Después del bucle, imprimir un carácter de nueva línea para separar la salida.
  2. Dentro de freeList, declarar una variable current e inicializarla con head.

    • Utilizar un bucle while para iterar mientras current no sea NULL.
    • Dentro del bucle, almacenar current en una variable temporal temp.
    • Avanzar current al siguiente nodo.
    • Liberar la memoria asignada a temp.

Solución

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 4
single

single

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you show me the complete function code?

How does this function handle an empty list?

Can you explain what happens if the list has only one node?

close

bookRecorrido y Visualización de una Lista Enlazada

Desliza para mostrar el menú

Después de aprender cómo crear y conectar nodos, es necesario verificar que dicha lista funcione correctamente.

Para ello, se debe escribir una función simple que muestre toda la lista.

La función recibirá un puntero al área de memoria donde se almacena el nodo principal (primero) de la lista.

void printList(struct Node* head) {}

Luego, se creará un nodo temporal current, con el cual se recorrerá toda la lista. El contenido del nodo current será igual al contenido del nodo actual de la lista.

struct Node* current = head;

Para iterar a través de la lista, se utiliza el ciclo while(){} con la condición necesaria, es decir, hasta encontrar un nodo cuyo campo next sea NULL.

Note
Nota

El nodo temp (temporal) cumple la función de nodo búfer. Es necesario para almacenar temporalmente (y eliminar) el contenido del nodo actual. Si se borra inmediatamente el nodo actual, se perderá la conexión con el siguiente nodo, lo que significa que se perderá el acceso a la lista.

while (current != NULL) { }
printf("\n");

Dentro del ciclo, se mostrará el contenido del campo data del nodo actual y se modificará el campo next para avanzar al siguiente nodo.

printf("%d ", current->data);
current = current->next;

En cuanto se encuentra un nodo cuyo campo next es igual a NULL, el bucle dejará de mostrar el contenido de los nodos y la función finalizará.

Tarea

Swipe to start coding

Implementar una lista enlazada simple con asignación dinámica de memoria. La tarea consiste en completar las funciones printList y freeList.

  1. Implementar una función printList con un único parámetro struct Node* head.

    • Dentro de printList, declarar una variable current e inicializarla con head.
    • Utilizar un bucle while para iterar mientras current no sea NULL.
    • En cada iteración, imprimir el campo data de current y avanzar current al siguiente nodo.
    • Después del bucle, imprimir un carácter de nueva línea para separar la salida.
  2. Dentro de freeList, declarar una variable current e inicializarla con head.

    • Utilizar un bucle while para iterar mientras current no sea NULL.
    • Dentro del bucle, almacenar current en una variable temporal temp.
    • Avanzar current al siguiente nodo.
    • Liberar la memoria asignada a temp.

Solución

Switch to desktopCambia al escritorio para practicar en el mundo realContinúe desde donde se encuentra utilizando una de las siguientes opciones
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 4
single

single

some-alt