Programiranje u C-u

  

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;

©Copyright B Brown. 1984-1998. All rights reserved.