Tipos de lista vinculada

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.

  1. Lista individualmente vinculada
  2. Lista doblemente vinculada
  3. Lista enlazada circular

Lista individualmente vinculada

Es el más común. Cada nodo tiene datos y un puntero al siguiente nodo.

Lista individualmente vinculada

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.

Lista doblemente enlazada

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.

Lista enlazada 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;

Articulos interesantes...