File: Stare vježbe/vjezbe11/71a__vezane_liste.c
/* 71a__vezane_liste.c Uvodimo pojam vezane liste. ----- Program ucitava cijele brojeve i stavlja ih u vezanu listu tako da svaki ucitani broj stavi na pocetak. */ #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef struct __node { int broj; struct __node *next; } node; int main ( void ) { node *glava, *pomocni; /* inicijalizacija liste */ glava=NULL; /* ucitavamo brojeve sve dok se ne ucita 0 */ while (1) { int temp; printf ("Unesi broj (0 za kraj): "); scanf ("%d", &temp); if (temp==0) break; pomocni=(node *) malloc(sizeof(node)); pomocni->broj=temp; /* dodajemo novi cvor na pocetak liste glava */ if (glava==NULL) { /* ako je lista prazna, ovo joj postaje jedini cvor; iduceg elementa nema */ glava=pomocni; glava->next=NULL; } else { /* ako vec nesto ima u listi, to treba ici iza cvora pomocni; nova glava liste postaje cvor pomocni */ pomocni->next=glava; glava=pomocni; } } /* ispisujemo listu cvor po cvor */ for (pomocni=glava; pomocni!=NULL; pomocni=pomocni->next) printf ("%d ", pomocni->broj ); /* oslobadjanje memorije */ while (glava!=NULL) { pomocni=glava; glava=glava->next; free (pomocni); } return 0; }
|