Tipos de lista vinculada

Neste tutorial, você aprenderá diferentes tipos de lista vinculada. Além disso, você encontrará a implementação da lista vinculada em C.

Antes de aprender sobre o tipo de lista vinculada, certifique-se de conhecer a estrutura de dados LinkedList.

Existem três tipos comuns de Lista vinculada.

  1. Lista vinculada individualmente
  2. Lista duplamente vinculada
  3. Lista Circular Ligada

Lista vinculada individualmente

É o mais comum. Cada nó possui dados e um ponteiro para o próximo nó.

Lista unida individualmente

O nó é representado como:

 struct node ( int data; struct node *next; )

Uma lista vinculada de três membros pode ser criada 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 duplamente vinculada

Adicionamos um ponteiro para o nó anterior em uma lista duplamente vinculada. Assim, podemos ir em qualquer direção: para frente ou para trás.

Lista duplamente vinculada

Um nó é representado como

 struct node ( int data; struct node *next; struct node *prev; )

Uma lista duplamente vinculada de três membros pode ser criada 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 Circular Ligada

Uma lista ligada circular é uma variação de uma lista ligada em que o último elemento está ligado ao primeiro elemento. Isso forma um loop circular.

Lista ligada circular

Uma lista ligada circular pode ser ligada individualmente ou duplamente ligada.

  • para uma lista ligada individualmente, o próximo ponteiro do último item aponta para o primeiro item
  • Na lista duplamente vinculada, o ponteiro anterior do primeiro item aponta para o último item também.

Uma lista circular de três membros unida individualmente pode ser criada 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;

Artigos interessantes...