Advertisement
d1i2p3a4k5

6.Double ended queue(DS)

Nov 1st, 2014
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.78 KB | None | 0 0
  1. #include<conio.h>
  2. #include<stdio.h>
  3. #define max 100
  4. #define pf printf
  5. #define sf scanf_s
  6. typedef struct
  7. {
  8.     int q[max];
  9.     int r,f;
  10. }queue;
  11. int isempty(queue *t)
  12. {
  13.     if(t->r==t->f)
  14.         return 1;
  15.     else
  16.         return 0;
  17. }
  18. void insertleft(queue *t,int ele)
  19. {
  20.     if(t->f==-1)
  21.     {
  22.         pf("\nDequeue Overflow\n");
  23.         return ;
  24.     }
  25.     t->q[t->f] =  ele;
  26.     t->f--;
  27.     return ;
  28. }
  29. void insertright(queue *t,int ele)
  30. {
  31.     if(t->r==max-1)
  32.     {
  33.         pf("\nDequeue Overflow\n");
  34.         return ;
  35.     }
  36.     t->r++;
  37.     t->q[t->r]=ele;
  38.     return ;
  39. }
  40. void deleteleft(queue *t)
  41. {
  42.     int z;
  43.     if(isempty(t))
  44.     {
  45.         pf("\nDequeue Underflow\n");
  46.         return ;
  47.     }
  48.     z = t->q[t->f+1];
  49.     t->f++;
  50.     pf("\nDeleted element is %d",z);
  51.     return ;
  52. }
  53. void deleteright(queue *t)
  54. {
  55.     int z;
  56.     if(isempty(t))
  57.     {
  58.         pf("\nDequeue Underflow\n");
  59.         return ;
  60.     }
  61.     z = t->q[t->r];
  62.     t->r--;
  63.     pf("\nDeleted element is %d",z);
  64.     return ;
  65. }
  66. void display(queue *t)
  67. {
  68.     int i;
  69.     if(isempty(t))
  70.     {
  71.         pf("\nDequeue is empty\n");
  72.         return ;
  73.     }
  74.     pf("\nElements of Dequeue is given Below\n");
  75.     for(i=t->f+1;i<=t->r;i++)
  76.     {
  77.         pf("%d\t",t->q[i]);
  78.     }
  79.     return ;
  80. }
  81. int main()
  82. {
  83.     int ch,ele;
  84.     queue x;
  85.     x.r=x.f=max/2;
  86.     pf("\nIMPLEMENTATION OF DEQUEUE\n");
  87.     while(1)
  88.     {
  89.         pf("Enter Choice \n1.Insertleft 2.Insertright 3.Deleteleft 4.Deleteright 5.Display 6.exit\t");
  90.         sf("%d",&ch);
  91.         if(ch==6)
  92.             break;
  93.         else
  94.         {
  95.             switch(ch)
  96.             {
  97.             case 1:pf("\nEnter element to be insert\n");
  98.                 sf("%d",&ele);
  99.                 insertleft(&x,ele);
  100.                 break;
  101.             case 2:pf("\nEnter element to be insert\n");
  102.                 sf("%d",&ele);
  103.                 insertright(&x,ele);
  104.                 break;
  105.             case 3:deleteleft(&x);
  106.                 break;
  107.             case 4:deleteright(&x);
  108.                 break;
  109.             case 5:display(&x);
  110.                 break;
  111.             default:pf("\nInvalid choice\n");
  112.             }
  113.         }
  114.     }
  115.     _getch();
  116.     return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement