/* Example 18.1 Queue application driver Author: Peter Brusilovsky */ #include "IntLL.h" #include void main(){ LIST *mylist; int i, res; int value; mylist = createList(); while(1){ printf("\nList manipulation:\n\n"); printf("1. Add\t\t"); printf("2. Remove\n"); printf("3. Find\t\t"); printf("4. Empty\n"); printf("5. Count\t"); printf("6. Print\n"); printf("7. End\n\n"); scanf("%d",&i); if(i == 1) { printf("Value? "); scanf("%d",&value); if((res = addNode(mylist, value)) == 0) printf("Value %d added in\n", value); else if(res == -1) printf("List is Full\n"); else printf("Duplicate key %d\n", value); } else if (i == 2) { printf("Value? "); scanf("%d",&value); if(removeNode(mylist, value)) printf("Node %d removed\n", value); else printf("No node with key %d\n", value); } else if (i == 3) { printf("Value? "); scanf("%d",&value); if (retrieveNode(mylist, value)) printf("Node %d found\n", value); else printf("Node %d not found\n", value); } else if (i == 4) if (emptyList(mylist)) printf("List is empty\n"); else printf("List is not empty\n"); else if (i == 5) printf("%d elements in the list\n", listCount(mylist)); else if (i == 6) { printf("( "); if (traverse(mylist, 0, &value)) do{ printf("%d ", value); } while (traverse(mylist, 1, &value)); printf(")\n"); } else { destroyList(mylist); return; } } }