Lingitud loendi tüübid

Selles õpetuses saate teada erinevat tüüpi lingitud loendeid. Samuti leiate lingitud loendi rakendamise C-st.

Enne lingitud loendi tüübi tundmaõppimist veenduge, et teaksite LinkedListi andmestruktuuri.

Lingitud loendeid on kolme tavalist tüüpi.

  1. Üksikult lingitud loend
  2. Kahekordse lingiga loend
  3. Ringkirjaga seotud loend

Üksikult lingitud loend

See on kõige tavalisem. Igal sõlmel on andmed ja kursor järgmisele sõlmele.

Ainult lingitud loend

Sõlm on esindatud järgmiselt:

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

Kolmeliikmelise eraldi lingitud loendi saab luua järgmiselt:

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

Kahekordse lingiga loend

Lisame kahekordse lingiga loendis eelmisele sõlmele osuti. Seega võime liikuda mõlemas suunas: edasi või tagasi.

Kahekordse lingiga loend

Sõlm on kujutatud kujul

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

Kolmeliikmelise topeltlingitud loendi saab luua järgmiselt

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

Ringkirjaga seotud loend

Ringikujuline lingitud loend on lingitud loendi variatsioon, milles viimane element on lingitud esimese elemendiga. See moodustab ümmarguse silmuse.

Ringkirjaga seotud loend

Ümmarguse lingiga loend võib olla kas ühe- või kahekordne.

  • eraldi lingitud loendi puhul osutab viimase elemendi järgmine osuti esimesele üksusele
  • Topeltlingitud loendis osutab esimese üksuse eelkursor ka viimasele üksusele.

Kolmeliikmelise ümmarguse lingiga loendi saab luua järgmiselt:

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

Huvitavad Artiklid...