Virajsinh

Stack

Nov 30th, 2017
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.18 KB | None | 0 0
  1. //Stack
  2.  
  3. #include<conio.h>
  4. #include<stdio.h>
  5. #define MAX 3
  6.  
  7. int st[MAX], top=-1;
  8. //push (add)
  9. void push(int st[], int val);
  10. //pop (remove)
  11. int pop(int st[]);
  12. //peep (search)
  13. int peep(int st[], int idx);
  14. void display(int st[]);
  15. void update(int st[], int val, int idx);
  16.  
  17. void main()
  18. {
  19.     int val, op, idx;
  20.     clrscr();
  21.  
  22.     do
  23.     {
  24.         getch();
  25.         clrscr();
  26.  
  27.         printf("\n Main Menu");
  28.         printf("\n 1. Push");
  29.         printf("\n 2. Pop");
  30.         printf("\n 3. Peep");
  31.         printf("\n 4. Display");
  32.         printf("\n 5. Update");
  33.  
  34.         switch(op)
  35.         {
  36.             case 1:
  37.             printf("Enter Number : ");
  38.             scanf("%d", &val);
  39.             push(st,val);
  40.             break;
  41.  
  42.             case 2:
  43.             val=pop(st);
  44.             if(val==-1)
  45.             {
  46.                 printf("\n The Value Deleted From The Stack");
  47.             }
  48.             break;
  49.  
  50.             case 3:
  51.             printf("\n Enter The Index To Search : ");
  52.             scanf("%d", &idx);
  53.             if(idx<1)
  54.             {
  55.                 printf("\n Invalid Index");
  56.             }
  57.  
  58.             else
  59.             {
  60.                 val=peep(st,idx);
  61.                 if(val != 1)
  62.                 {
  63.                     printf("\n The Value Stored at Top Of The Stack is %d", val);
  64.                 }
  65.             }
  66.             break;
  67.  
  68.             case 4:
  69.             printf("\n Enter The Number to Update on to The Stack : ");
  70.             scanf("%d", &val);
  71.  
  72.             printf("\n Enter The Index To Be Update on The Stack : ");
  73.             scanf("%d", &idx);
  74.  
  75.             if(idx<1)
  76.             {
  77.                 printf("\n Invalid Index");
  78.             }
  79.             else
  80.             {
  81.                 update(st, val, idx);
  82.             }
  83.             break;
  84.  
  85.             case 5:
  86.             display(st);
  87.             break;
  88.  
  89.         }
  90.     }while (op!=6);
  91.         getch();
  92. }
  93.  
  94. void push(int st[], int val)
  95. {
  96.     if(top==MAX-1)
  97.     {
  98.         printf("\n Stack is Overflow");
  99.     }
  100.     else
  101.     {
  102.         top++;
  103.         st[top]=val;
  104.     }
  105. }
  106.  
  107. int pop(int st[])
  108. {
  109.     int val;
  110.     if(top==1)
  111.     {
  112.         printf("Stack is Underflow");
  113.         return -1;
  114.     }
  115.     else
  116.     {
  117.         val=st[top];
  118.         top--;
  119.         return val;
  120.     }
  121. }
  122.  
  123. void display(int st[])
  124. {
  125.     int i;
  126.     if(top == -1)
  127.     {
  128.         printf("\n Stack is Empty");
  129.     }
  130.     else
  131.     {
  132.         for(i=top;i>=0;i++)
  133.         {
  134.             printf("\n %d", st[i]);
  135.         }
  136.     }
  137. }
  138.  
  139. int peep(int st[], int idx)
  140. {
  141.     if(top-idx+1<=-1)
  142.     {
  143.         printf("\n Stack is Underflow");
  144.         return -1;
  145.     }
  146.     else
  147.     {
  148.         return(st[top-idx+1]);
  149.     }
  150. }
  151.  
  152. void update(int st[], int val, int idx)
  153. {
  154.     if(top-idx+1<=-1)
  155.     {
  156.         printf("\n Stack is Underflow");
  157.     }
  158.     else
  159.     {
  160.         st[top-idx+1]=val;
  161.     }
  162. }
Add Comment
Please, Sign In to add comment