/* Example 21.1 Stack application driver Author: Peter Brusilovsky */ #include "StackIntLL.h" #include void main(){ STACK *mystack; /* small difference from Example 16.1 */ int i; int value; mystack = createStack(10); while(1){ printf("Stack manipulation:\n\n"); printf("1. Push\n"); printf("2. Pop\n"); printf("3. Top\n"); printf("4. End\n\n"); scanf("%d",&i); if(i == 1) { printf("Value? "); scanf("%d",&value); if(pushStack(mystack, value)) printf("Value %d pushed in\n", value); else printf("Stack is Full\n"); } else if (i == 2) if(popStack(mystack, &value)) printf("Value %d popped\n", value); else printf("Stack is Empty\n"); else if (i == 3) if (stackTop(mystack, &value)) printf("Value on the top is %d\n", value); else printf("Stack is Empty\n"); else { destroyStack(mystack); /* now correcly releasing memory */ return; } } }