#include typedef struct { char *dataitem; struct listelement *link; } listelement; listelement * AddItem(listelement * listpointer, char *data); listelement * RemoveItem(listelement * listpointer); void PrintQueue (listelement * listpointer); void ClearQueue (listelement * listpointer); main() { listelement listmember, *listpointer; char *data, choice; listpointer = NULL; int i; for(i = 0;i<20;i++){ listpointer = AddItem (listpointer, "jenys"); } /* for(i = 0;i<12;i++){ listpointer = RemoveItem (listpointer); } */ PrintQueue (listpointer); } listelement * AddItem (listelement * listpointer, char *data) { listelement * lp = listpointer; if (listpointer != NULL) { while (listpointer -> link != NULL) listpointer = listpointer -> link; listpointer -> link = (struct listelement *) malloc (sizeof (listelement)); listpointer = listpointer -> link; listpointer -> link = NULL; listpointer -> dataitem = data; return lp; } else { listpointer = (struct listelement *) malloc (sizeof (listelement)); listpointer -> link = NULL; listpointer -> dataitem = data; return listpointer; } } void PrintQueue (listelement * listpointer) { if (listpointer == NULL) printf ("queue is empty!\n"); else while (listpointer != NULL) { printf (listpointer -> dataitem); listpointer = listpointer -> link; } printf ("\n"); } listelement * RemoveItem (listelement * listpointer) { listelement * tempp; printf ("Element removed is %d\n", listpointer -> dataitem); tempp = listpointer -> link; free (listpointer); return tempp; }