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;