CODEMALAYALAM

stack DS

Jun 10th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.53 KB | None | 0 0
  1. /* Implementation of stack in C */
  2.  
  3. #include<stdio.h>
  4. #include<stdlib.h>
  5.  
  6. #define SIZE 3
  7.  
  8. struct stak{
  9.    
  10.     int stack[SIZE];
  11.     int top;
  12. }stackvar;
  13.  
  14. int isFull();
  15. int isEmpty();
  16. void push(int);
  17. int pop();
  18. void peek();
  19. void display();
  20.  
  21. int main()
  22. {
  23.     stackvar.top = -1;
  24.     int option, element;
  25.     while(1)
  26.     {
  27.         printf("\n\nENTER YOUR OPTION\n");
  28.         printf("1. PUSH\n2. POP\n3. PEEK\n4. DISPLAY\n5. EXIT\n");
  29.         scanf("%d",&option);
  30.         switch(option)
  31.         {  
  32.             case 5: exit(0);
  33.             case 1: printf("ENTER ELEMENT TO PUSH\n");
  34.                     scanf("%d",&element);
  35.                     push(element);
  36.             break;
  37.             case 2:printf("%d HAS BEEN POPPED\n",pop());
  38.             break;
  39.             case 3:peek();
  40.             break;
  41.             case 4:display();
  42.             break;
  43.             default: printf("INVALID OPTION\n");
  44.         }
  45.     }
  46.     return 0;
  47. }
  48.  
  49. int isFull()
  50. {
  51.     return stackvar.top == SIZE-1;
  52. }
  53. int isEmpty()
  54. {
  55.     return stackvar.top == -1;
  56. }
  57. void push(int ele)
  58. {
  59.     if(isFull())
  60.     {
  61.         printf("STACK IS FULL, CANT PUSH\n");
  62.     }
  63.     else
  64.     {
  65.         stackvar.stack[++stackvar.top] = ele;
  66.         printf("%d HAS BEEN PUSHED\n",ele);
  67.     }
  68.        
  69. }
  70. int pop()
  71. {
  72.     if(isEmpty())
  73.     {
  74.         printf("THE STACK IS EMPTY, CAN'T POP\n");
  75.         return -1;
  76.     }
  77.     return stackvar.stack[stackvar.top--];
  78. }
  79. void peek()
  80. {
  81.     if(!isEmpty())
  82.         printf("\nTOP OF THE STACK IS %d\n",stackvar.stack[stackvar.top]);
  83.     else
  84.         printf("STACK IS EMPTY\n");
  85. }
  86.  
  87. void display()
  88. {
  89.     int i;
  90.     i = stackvar.top;
  91.     if(!isEmpty())
  92.         while(i != -1)
  93.             printf("\n\t%d\n",stackvar.stack[i--]);
  94.     else
  95.         printf("STACK IS EMPTY\n");
  96. }
Add Comment
Please, Sign In to add comment