VEZANE LISTE
Vezana lista je složena podatkovna struktura,
posebno korisna u sistemskom ili aplikacijskom programiranju. Vezana lista
se sastuji od niza čvorova od kojih svaki sadrži podatak i pokazivač
na slijedeći čvor npr.,
-------- -------- | data | --->| data | |--------| | |--------| | pointer|---- | pointer| ---> NULL -------- --------Struktura koja sadrži podatak i pokazivač na slijedeći čvor se kreira sa,
struct list { int value; struct list *next; };Ovo definira novu strukturu podataka nazvanu list (ustvari definicija čvora), koja sadrži dva člana. Prvi je integer value. Drugi se zove next, i to je pokazivač na slijedeću list strukturu (ili čvor). Pretpostavimo da deklariramo dvije strukture istog tipa kao list npr.,
struct list n1, n2;Next pokazivač strukture n1 može pokazivati na strukturu n2
/* pridružujemo adresu prvog elementa u n2 pokazivaču next iz n1 strukture */ n1.next = &n2;što stvara vezu između dvije strukture.
/* LLIST.C Program ilustrira vezane liste */ #include <stdio.h> struct list { int value; struct list *next; }; main() { struct list n1, n2, n3; int i; n1.value = 100; n2.value = 200; n3.value = 300; n1.next = &n2; n2.next = &n3; i = n1.next->value; printf("%d\n", n2.next->value); }
Razmotrite i slijedeće
n1.next = n2.next /* briše n2 */ n2_3.next = n2.next; /* dodaje struct n2_3 */ n2.next = &n2_3;Pri korištenju povezanih struktura, uobičajeno je pridijeliti vrijednost 0 posljednjem pokazivaču u listi, da bi se označilo da lista nema više čvorova,
n3.next = 0;