Advertisement
Shailrshah

Array Implementation of Stacks and Queues

Aug 30th, 2013
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.54 KB | None | 0 0
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int limit,i,answer,a[100],value,temp,top;
  5.     printf("Enter the limit: ");
  6.     scanf("%i",&limit);
  7.     temp=limit;
  8.     printf("Enter %i elements in the array.\n",limit);
  9.     for(i=0;i<limit;i++)
  10.         scanf("%i",&a[i]);
  11.     printf("Limit is reached. What type of array is this? \n 1. Queue 2.Stack\n");
  12.     scanf("%i",&answer);
  13.     switch (answer)
  14.     {
  15.         case 1:
  16.                 printf("The Queue is: \n");
  17.                 for (i=limit-1; i>=0; i--)
  18.                 printf("%i ",a[i]);
  19.                 do
  20.                 {
  21.                     printf("\n What do you want to do?\n \n1.Insert 2. Delete. 3.Quit: ");
  22.                     scanf("%i",&answer);
  23.                     if (answer==1)
  24.                     {
  25.                         printf("Enter the value: ");
  26.                         scanf("%i",&value);
  27.                         if(limit==temp)
  28.                         {
  29.                             limit++;                        //Insert
  30.                             a[limit-1]=value;
  31.                             a[0]=0;
  32.                             for(i=1; i<limit; i++)
  33.                             a[i-1] = a[i];
  34.                             limit--;
  35.                         }
  36.                         else
  37.                         {
  38.                             limit++;
  39.                             a[limit-1]=value;
  40.                         }
  41.                         printf("The new Queue is: ");
  42.                         for (i=limit-1; i>=0; i--)
  43.                             printf("%i ",a[i]);
  44.                     }
  45.                     if(answer == 2)                     //Delete
  46.                     {
  47.                         if (limit==0)
  48.                         {
  49.                             printf("The Queue is empty.");
  50.                             continue;
  51.                         }
  52.                         a[0]=0;
  53.                         for(i=1; i<limit; i++)
  54.                             a[i-1] = a[i];
  55.                         limit--;
  56.                         if( limit == 0)
  57.                         {
  58.                             printf("The Queue is Empty.");
  59.                             continue;
  60.                         }
  61.                         printf("The new array is: ");
  62.                         for (i = limit-1; i>=0; i--)
  63.                             printf("%i ",a[i]);
  64.                     }
  65.                 }while (answer != 3);
  66.                 break;
  67.         case 2:
  68.                 printf("The stack is full. The array is:-\n");
  69.                 for(i=limit-1;i>=0;i--)
  70.                     printf("%i \n",a[i]);
  71.                 do
  72.                 {
  73.                     top=limit-1;
  74.                     printf("\n What do you want to do?\n \n1.Insert 2. Delete. 3.Quit: ");
  75.                     scanf("%i",&answer);
  76.                     if(answer==1)
  77.                     {
  78.                         if(limit>=temp)
  79.                         {
  80.                             printf("The stack is full. Try deleting first.");
  81.                             continue;
  82.                         }
  83.                         limit++;
  84.                         printf("Enter the value: ");
  85.                         scanf("%i",&value);
  86.                             a[top+1]=value;
  87.                         top++;
  88.                         printf("The new array is:-\n");
  89.                         for(i=limit-1;i>=0;i--)
  90.                             printf("%i \n",a[i]);
  91.                     }
  92.                     if(answer==2)
  93.                     {
  94.                         if(limit==0)
  95.                         {
  96.                             printf("The stack is empty. \n");
  97.                             continue;
  98.                         }
  99.                         a[top]=0;
  100.                         limit--;
  101.                         top--;
  102.                         if(limit==0)
  103.                         {
  104.                             printf("The stack is empty. \n");
  105.                             continue;
  106.                         }
  107.                         printf("The new array is:-\n");
  108.                         for(i=limit-1;i>=0;i--)
  109.                             printf("%i \n",a[i]);
  110.                     }
  111.                 } while(answer != 3);
  112.                 break;
  113.  
  114.     }
  115.     fflush(stdin);
  116.     getchar;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement