File: Stare vježbe/vjezbe11/71b__vezane_liste.c
/* 71b__vezane_liste.c ----- Program ucitava cijele brojeve i stavlja ih u vezanu listu tako da svaki ucitani broj stavi na kraj. */ #include <stdio.h> #include <stdlib.h> #include <malloc.h> typedef struct __node { int broj; struct __node *next; } node; int main ( void ) { node *glava, *pomocni, *kraj; /* inicijalizacija liste */ glava=kraj=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; kraj=glava; } else { /* novi zadnji element liste treba biti cvor pomocni */ kraj->next=pomocni; pomocni->next=NULL; kraj=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; }
|