Tipi di elenchi collegati

In questo tutorial imparerai diversi tipi di elenchi collegati. Inoltre, troverai l'implementazione dell'elenco collegato in C.

Prima di conoscere il tipo di elenco collegato, assicurati di conoscere la struttura dei dati di LinkedList.

Esistono tre tipi comuni di elenchi collegati.

  1. Elenco collegato singolarmente
  2. Elenco doppiamente collegato
  3. Elenco collegato circolare

Elenco collegato singolarmente

È il più comune. Ogni nodo ha dati e un puntatore al nodo successivo.

Elenco collegato singolarmente

Il nodo è rappresentato come:

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

È possibile creare un elenco collegato singolarmente di tre membri come:

 /* 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;

Elenco doppiamente collegato

Aggiungiamo un puntatore al nodo precedente in un elenco a doppio collegamento. Quindi, possiamo andare in entrambe le direzioni: avanti o indietro.

Elenco doppiamente collegato

Un nodo è rappresentato come

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

È possibile creare un elenco a tre membri doppiamente collegato come

 /* 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;

Elenco collegato circolare

Un elenco collegato circolare è una variazione di un elenco collegato in cui l'ultimo elemento è collegato al primo elemento. Questo forma un anello circolare.

Elenco collegato circolare

Una lista collegata circolare può essere collegata singolarmente o doppiamente.

  • per l'elenco collegato singolarmente, il puntatore successivo dell'ultimo elemento punta al primo elemento
  • Nella lista doppiamente collegata, il puntatore precedente del primo elemento punta anche all'ultimo elemento.

È possibile creare una lista circolare di tre membri collegata singolarmente come:

 /* 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;

Articoli interessanti...