Advertisement
Md_Touhid

Simple Stack Implementation By Array

Feb 14th, 2016 (edited)
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.47 KB | None | 0 0
  1. #include<stdio.h>
  2. #include <stdbool.h>
  3.  
  4. void init_stack(int);
  5. void push(int);
  6. int pop();
  7. int peek();
  8. void print(int);
  9.  
  10. int top = -1;
  11. int stack[];
  12.  
  13. int main()
  14. {
  15.     int item, stack_size;
  16.  
  17.     printf("Size of your stack : ");
  18.     scanf("%d", &stack_size);
  19.     printf("This Stack Allows Only Integer Value!");
  20.     stack[stack_size];
  21.  
  22.     init_stack(stack_size); //initializing the stack array with zeros
  23.  
  24.     bool t = true;
  25.     while(t)
  26.     {
  27.         printf("\n\n1. Push\n2. Pop\n3. Peek\n4. isEmpty\n5. isFull\n6. Print Stack\n7. Exit");
  28.         printf("\n\nChoose : ");
  29.  
  30.         int c;
  31.         scanf("%d", &c);
  32.  
  33.         switch(c)
  34.         {
  35.             case 1 :
  36.                 printf("\n\nitem : ");
  37.                 scanf("%d", &item);
  38.  
  39.                 if(top < stack_size-1)
  40.                 {
  41.                     push(item);
  42.                     printf("\nSuccessful...");
  43.                 }
  44.                 else printf("\n\tStack overflow!");
  45.                 break;
  46.  
  47.             case 2 :
  48.                 if(top > -1)
  49.                 {
  50.                     item = pop();
  51.                     printf("\nPopped item is : %d", item);
  52.                 }
  53.                 else printf("\n\tStack underflow!");
  54.                 break;
  55.  
  56.             case 3 :
  57.                 if(top > -1)
  58.                 {
  59.                     item = peek();
  60.                     printf("\nTop item is : %d", item);
  61.                 }
  62.                 else printf("\nStack is empty!");
  63.                 break;
  64.  
  65.             case 4 :
  66.                 if(top > -1) printf("\nStack is not empty.");
  67.                 else printf("\nStack is empty!");
  68.                 break;
  69.  
  70.             case 5 :
  71.                 if(top < stack_size-1) printf("\nStack is not full.");
  72.                 else printf("\nStack is full!");
  73.                 break;
  74.  
  75.             case 6 :
  76.                 printf("\n\nCurrent stack :");
  77.                 print(stack_size);
  78.                 break;
  79.  
  80.             default :
  81.                 t = false;
  82.         }
  83.     }
  84.  
  85.     return 0;
  86. }
  87.  
  88. void push(int item)
  89. {
  90.     top++;
  91.     stack[top] = item;
  92. }
  93.  
  94. int pop()
  95. {
  96.     int item = stack[top];
  97.     stack[top] = 0;  //deleting the item from the stack
  98.     top--;
  99.     return item;
  100. }
  101.  
  102. int peek()
  103. {
  104.     return stack[top];
  105. }
  106.  
  107. void print(int n)
  108. {
  109.     for(int i=0; i<n; i++)
  110.     {
  111.         printf("\t%d", stack[i]);
  112.     }
  113. }
  114.  
  115. void init_stack(int n)
  116. {
  117.     for(int i=0; i<n; i++)
  118.     {
  119.         stack[i] = 0;
  120.     }
  121. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement