0Pricing
C Academy · Lección

Listas enlazadas

Aprenda cómo funcionan las listas enlazadas y cómo implementar operaciones como la inserción y la eliminación

Listas enlazadas es una lección gratuita de C Academy en CoddyKit. Esta es la lección 1 de 3. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C Academy incluye 3 lecciones en total.

Listas enlazadas en C

Listas enlazadas en C

Una lista enlazada es una estructura de datos dinámica cuyos elementos (nodos) están conectados mediante punteros.

En esta lección, aprenderá:

  • Cómo funcionan las listas enlazadas.
  • Cómo insertar y eliminar nodos en una lista enlazada.
  • Las ventajas de las listas enlazadas frente a los arrays.
Listas enlazadas — ilustración 1

Ejemplo: definición de un nodo de una lista enlazada

Ejemplo: definición de un nodo de una lista enlazada

En C, un nodo de una lista enlazada se define mediante una struct con un campo de datos y un puntero al siguiente nodo.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

int main() {
    struct Node *head = NULL;
    return 0;
}

Insertar un nodo al principio

Insertar un nodo al principio

Para insertar un nodo nuevo al principio de una lista enlazada:

  • Cree un nodo nuevo.
  • Establezca su puntero next para que apunte al elemento inicial actual.
  • Actualice el puntero al elemento inicial.

Ejemplo: insertar un nodo al principio

Ejemplo: insertar un nodo al principio

Este programa inserta un nodo nuevo al principio de una lista enlazada.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void insertAtBeginning(struct Node **head, int newData) {
    struct Node *newNode = (struct Node*)malloc(sizeof(struct Node));
    newNode->data = newData;
    newNode->next = *head;
    *head = newNode;
}

int main() {
    struct Node *head = NULL;
    insertAtBeginning(&head, 10);
    printf("Inserted: %d\n", head->data);
    return 0;
}

Eliminar un nodo

Eliminar un nodo

Para eliminar un nodo de una lista enlazada:

  • Encuentre el nodo que desea eliminar.
  • Actualice el puntero next del nodo anterior.
  • Libere la memoria del nodo eliminado.

Ejemplo: eliminar un nodo

Ejemplo: eliminar un nodo

Este programa elimina un nodo de una lista enlazada.

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

void deleteNode(struct Node **head, int key) {
    struct Node *temp = *head, *prev;
    if (temp != NULL && temp->data == key) {
        *head = temp->next;
        free(temp);
        return;
    }
    while (temp != NULL && temp->data != key) {
        prev = temp;
        temp = temp->next;
    }
    if (temp == NULL) return;
    prev->next = temp->next;
    free(temp);
}

int main() {
    struct Node *head = (struct Node*)malloc(sizeof(struct Node));
    head->data = 10;
    head->next = NULL;
    deleteNode(&head, 10);
    return 0;
}

Ventajas de las listas enlazadas

Ventajas de las listas enlazadas

Las listas enlazadas ofrecen varias ventajas frente a los arrays:

  • Tamaño dinámico (no es necesario especificar el tamaño de antemano).
  • Inserciones y eliminaciones eficientes.
  • No se desperdicia memoria debido a los tamaños fijos.

Resumen

Resumen

En esta lección, aprenderá:

  • Qué son las listas enlazadas y cómo funcionan.
  • Cómo insertar y eliminar nodos.
  • Las ventajas de las listas enlazadas frente a los arrays.

A continuación, exploraremos las pilas y las colas en C.

Listas enlazadas — ilustración 9

Preguntas frecuentes

¿La lección «Listas enlazadas» es gratis?

Sí — el texto completo de «Listas enlazadas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C Academy, actualiza a CoddyKit PRO. El curso de C Academy incluye 3 lecciones en total.

¿Qué aprenderé en «Listas enlazadas»?

Aprenda cómo funcionan las listas enlazadas y cómo implementar operaciones como la inserción y la eliminación Practicas C Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C Academy?

No se requiere experiencia previa. C Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 3.

¿Cuánto tiempo toma la lección «Listas enlazadas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C Academy?

Sí. Cada lección de C Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Listas enlazadas
  2. Pilas y colas
  3. Árboles y grafos
← Volver a C Academy