Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define CAPACITY 100
- struct node
- {
- int data;
- struct node *next;
- } *top;
- int size = 0;
- int main()
- {
- int choice,data,n;
- while(1)
- {
- printf("\n\n\t<<<<<<<WELCOME TO STACK PROGRAM>>>>>>>\n\n");
- printf("\t1. Push\n");
- printf("\t2. Pop\n");
- printf("\t3. Size\n");
- printf("\t4. TOP\n");
- printf("\n\tEnter Your Choice: ");
- scanf("%d", &choice);
- switch(choice)
- {
- case 1:
- printf("\tEnter data to push into stack: ");
- scanf("%d", &data);
- push(data);
- break;
- case 2:
- data = pop();
- if (data !=n )
- printf("\tData : %d\n", data);
- break;
- case 3:
- printf("\tStack size: %d\n", size);
- break;
- case 4:
- printf("\tTop is :%d\n",pop());
- break;
- default:
- printf("\tInvalid choice, please try again.\n");
- }
- printf("\n\n");
- }
- }
- void push(int element)
- {
- if (size >= CAPACITY)
- {
- printf("\tStack Overflow\n");
- return;
- }
- struct node *N = (struct node *) malloc(sizeof(struct node));
- N->data = element;
- N->next = top;
- top = N;
- ++size;
- printf("\tData is pushed into stack.\n");
- }
- int pop()
- {
- int data = 0,n;
- struct node * N;
- if (size <= 0 || !top)
- {
- printf("\tStack is empty.\n");
- return n;
- }
- N = top;
- data = top->data;
- top = top->next;
- free(N);
- size--;
- return data;
- }
Advertisement
Add Comment
Please, Sign In to add comment