En este tutorial, aprenderá diferentes tipos de listas vinculadas. Además, encontrará la implementación de la lista vinculada en C.
Antes de aprender sobre el tipo de lista vinculada, asegúrese de conocer la estructura de datos de LinkedList.
Hay tres tipos comunes de listas vinculadas.
- Lista individualmente vinculada
- Lista doblemente vinculada
- Lista enlazada circular
Lista individualmente vinculada
Es el más común. Cada nodo tiene datos y un puntero al siguiente nodo.

El nodo se representa como:
struct node ( int data; struct node *next; )
Se puede crear una lista de tres miembros enlazados individualmente como:
/* Initialize nodes */ struct node *head; struct node *one = NULL; struct node *two = NULL; struct node *three = NULL; /* Allocate memory */ one = malloc(sizeof(struct node)); two = malloc(sizeof(struct node)); three = malloc(sizeof(struct node)); /* Assign data values */ one->data = 1; two->data = 2; three->data = 3; /* Connect nodes */ one->next = two; two->next = three; three->next = NULL; /* Save address of first node in head */ head = one;
Lista doblemente vinculada
Agregamos un puntero al nodo anterior en una lista doblemente enlazada. Así, podemos ir en cualquier dirección: hacia adelante o hacia atrás.

Un nodo se representa como
struct node ( int data; struct node *next; struct node *prev; )
Se puede crear una lista de tres miembros doblemente enlazados como
/* Initialize nodes */ struct node *head; struct node *one = NULL; struct node *two = NULL; struct node *three = NULL; /* Allocate memory */ one = malloc(sizeof(struct node)); two = malloc(sizeof(struct node)); three = malloc(sizeof(struct node)); /* Assign data values */ one->data = 1; two->data = 2; three->data = 3; /* Connect nodes */ one->next = two; one->prev = NULL; two->next = three; two->prev = one; three->next = NULL; three->prev = two; /* Save address of first node in head */ head = one;
Lista enlazada circular
Una lista vinculada circular es una variación de una lista vinculada en la que el último elemento está vinculado al primer elemento. Esto forma un bucle circular.

Una lista enlazada circular puede estar enlazada individualmente o doblemente.
- para una lista enlazada individualmente, el siguiente puntero del último elemento apunta al primer elemento
- En la lista doblemente enlazada, el puntero anterior del primer elemento también apunta al último elemento.
Se puede crear una lista circular de tres miembros enlazados individualmente como:
/* Initialize nodes */ struct node *head; struct node *one = NULL; struct node *two = NULL; struct node *three = NULL; /* Allocate memory */ one = malloc(sizeof(struct node)); two = malloc(sizeof(struct node)); three = malloc(sizeof(struct node)); /* Assign data values */ one->data = 1; two->data = 2; three->data = 3; /* Connect nodes */ one->next = two; two->next = three; three->next = one; /* Save address of first node in head */ head = one;