Zinak

stack

Oct 27th, 2019
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.55 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int i=0,sta[100000];
  4. void data_in(int z)
  5. {
  6.     if(i<0){
  7.         printf("Stack is empty.\n");
  8.         return;
  9.     }
  10.     else if(i==100000){
  11.         printf("Stack is full.\n");
  12.         return;
  13.     }
  14.     sta[i++]=z;
  15.     return;
  16. }
  17. void data_out()
  18. {
  19.     if(i==0){
  20.         printf("Stack is empty.\n");
  21.         return;
  22.     }
  23.     printf("%d\n",sta[i-1]);
  24.     sta[i--];
  25.     return;
  26. }
  27. int last_data()
  28. {
  29.     if(i-1<0){
  30.         printf("No data in stack.\n");
  31.         return -1;
  32.     }
  33.     return sta[i-1];
  34. }
  35. int length()
  36. {
  37.     int k,nt=0;
  38.     for(k=0;k<i;k++)nt++;
  39.     return nt;
  40. }
  41. void display()
  42. {
  43.     int k;
  44.     if(i==0){
  45.         printf("No data.");
  46.         return;
  47.     }
  48.     for(k=0;k<i;k++)printf("%d ",sta[k]);
  49.     return;
  50. }
  51. int main()
  52. {
  53.     int a,x,q;
  54.     printf("1.Push\n");
  55.     printf("2.Pop\n");
  56.     printf("3.Top\n");
  57.     printf("4.Size\n");
  58.     printf("5.Display\n");
  59.     printf("6.Quit\n");
  60.     while(1){
  61.         scanf("%d",&x);
  62.         switch(x)
  63.         {
  64.         case 1:
  65.             scanf("%d",&a);
  66.             data_in(a);
  67.             break;
  68.         case 2:
  69.             data_out();
  70.             break;
  71.         case 3:
  72.             q=last_data();
  73.             if(q==-1)break;
  74.             printf("%d\n",q);
  75.             break;
  76.         case 4:
  77.             q=length();
  78.             printf("%d\n",q);
  79.             break;
  80.         case 5:
  81.             display();
  82.             printf("\n");
  83.             break;
  84.         case 6:
  85.             exit(1);
  86.         }
  87.     }
  88.     return 0;
  89. }
Add Comment
Please, Sign In to add comment