upsidedown

circular queue ONLY

Sep 27th, 2011
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.93 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4.  
  5. #define MAX 5
  6. struct QUEUE
  7. {
  8.     int data[MAX];
  9.     int front, rear;
  10.     int count;
  11. }q;
  12.  
  13. int f=1;
  14.  
  15. void print()
  16. {
  17.     int i,j;
  18.     if(q.count==0)
  19.     {
  20.         printf("queue is empty\n");
  21.     }
  22.     else
  23.     {
  24.  
  25.     if(f!=0)
  26.         q.front=(q.front+1)%MAX;
  27.     printf("elements of the queue are: ");
  28.     i=(q.front);
  29.     j=q.count;
  30.     while(j!=0)
  31.     {
  32.         printf("%d ",q.data[i]);
  33.         i=((i++)%MAX);
  34.         j--;
  35.     }
  36.     if(f!=0)
  37.         q.front=(MAX-1);
  38.     }
  39. }
  40.  
  41.  
  42. int main()
  43. {
  44.    
  45.    
  46.     int ch,s=1;
  47.     q.front=MAX-1;
  48.     q.rear=MAX-1;
  49.     q.count=0;
  50.  
  51.     do
  52.     {
  53.         printf("\n\n1.insert\t2.delete\t3.display\t4.exit\n enter ch: ");
  54.         scanf("%d",&ch);
  55.  
  56.         switch(ch)
  57.         {
  58.         case 1:
  59.             q.rear=((q.rear+1)%(MAX));
  60.             if((q.rear==q.front)&&(q.count==MAX)&&(s==0))
  61.             {
  62.                 printf("the queue is full\n");
  63.                 q.rear--;
  64.                 break;
  65.             }
  66.  
  67.             printf("enter data \n");
  68.             scanf("%d",&q.data[q.rear]);
  69.             q.count++;
  70.             if(q.rear==q.front)
  71.             {
  72.                 q.rear--;
  73.                 s=0;
  74.             }
  75.             print();
  76.             break;
  77.            
  78.  
  79.            
  80.            
  81.  
  82.  
  83.  
  84.         case 2:
  85.                 if(q.count==0)
  86.                 {
  87.                     printf("nothing to delete\n");
  88.                     break;
  89.                 }
  90.                 if(f!=0)
  91.                     q.front=(q.front+1)%MAX;
  92.                    
  93.                 s=1;
  94.                 printf("%d deleted\n",q.data[q.front]);
  95.                 f=0;
  96.                 q.count--;
  97.                 q.front=((q.front+1)%(MAX));
  98.                 print();
  99.                 break;
  100.  
  101.  
  102.         case 3:
  103.             print();
  104.             break;
  105.         case 4:
  106.             break;
  107.         }
  108.     }while(ch!=4);
  109.  
  110. return 0;
  111. }
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121. OUTPUT:
  122.  
  123. 1.insert        2.delete        3.display       4.exit
  124.  enter ch: 1
  125. enter data
  126. 2
  127. elements of the queue are: 2
  128.  
  129. 1.insert        2.delete        3.display       4.exit
  130.  enter ch: 1
  131. enter data
  132. 3
  133. elements of the queue are: 2 3
  134.  
  135. 1.insert        2.delete        3.display       4.exit
  136.  enter ch: 1
  137. enter data
  138. 4
  139. elements of the queue are: 2 3 4
  140.  
  141. 1.insert        2.delete        3.display       4.exit
  142.  enter ch: 1
  143. enter data
  144. 5
  145. elements of the queue are: 2 3 4 5
  146.  
  147. 1.insert        2.delete        3.display       4.exit
  148.  enter ch: 1
  149. enter data
  150. 6
  151. elements of the queue are: 2 3 4 5 6
  152.  
  153. 1.insert        2.delete        3.display       4.exit
  154.  enter ch: 1
  155. the queue is full
  156.  
  157.  
  158. 1.insert        2.delete        3.display       4.exit
  159.  enter ch: 2
  160. 2 deleted
  161. elements of the queue are: 3 4 5 6
  162.  
  163. 1.insert        2.delete        3.display       4.exit
  164.  enter ch: 3
  165. elements of the queue are: 3 4 5 6
  166.  
  167. 1.insert        2.delete        3.display       4.exit
  168.  enter ch: 2
  169. 3 deleted
  170. elements of the queue are: 4 5 6
  171.  
  172. 1.insert        2.delete        3.display       4.exit
  173.  enter ch: 2
  174. 4 deleted
  175. elements of the queue are: 5 6
  176.  
  177. 1.insert        2.delete        3.display       4.exit
  178.  enter ch: 2
  179. 5 deleted
  180. elements of the queue are: 6
  181.  
  182. 1.insert        2.delete        3.display       4.exit
  183.  enter ch: 2
  184. 6 deleted
  185. queue is empty
  186.  
  187.  
  188. 1.insert        2.delete        3.display       4.exit
  189.  enter ch: 2
  190. nothing to delete
  191.  
  192.  
  193. 1.insert        2.delete        3.display       4.exit
  194.  enter ch: 4
  195. Press any key to continue
  196.  
Advertisement
Add Comment
Please, Sign In to add comment