Advertisement
mhrabbi

Queue 1

Nov 7th, 2019
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.98 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<limits.h>
  4.  
  5. struct queue
  6. {
  7.     int data;
  8.     struct queue *next;
  9. }*rear=NULL,*front=NULL;
  10.  
  11. int size=0;
  12.  
  13. int main()
  14. {
  15.     int data,choice;
  16.  
  17.     while(1)
  18.     {
  19.         printf("1: Enqueue \n");
  20.         printf("2: Dequeue \n");
  21.         printf("3: Size of Queue\n");
  22.         printf("4: See front Data\n");
  23.         printf("5: See Rear Data\n");
  24.         printf("6: Display Queue List\n");
  25.         printf("7: Minimum And Maximum\n");
  26.         printf("8: Find an Item\n");
  27.  
  28.         printf("Select your option: ");
  29.         scanf("%d",&choice);
  30.  
  31.         switch(choice)
  32.         {
  33.         case 1:
  34.             printf("Enter data to Enqueue: ");
  35.             scanf("%d",&data);
  36.             enqueue(data);
  37.             break;
  38.         case 2:
  39.             dequeue();
  40.             break;
  41.         case 3:
  42.             printf("Queue size is %d",size);
  43.             break;
  44.  
  45.         case 4:
  46.             printf("Front data is: %d\n",front->data);
  47.  
  48.             break;
  49.         case 5:
  50.  
  51.             printf("Rear data is:%d",rear->data);
  52.             break;
  53.         case 6:
  54.             printf("List is\n");
  55.             displayList();
  56.             break;
  57.         case 7:
  58.             minmax();
  59.             break;
  60.         case 8:
  61.             find();
  62.             break;
  63.  
  64.         }
  65.         printf("\n\n");
  66.     }
  67.  
  68. }
  69. void enqueue(int data)
  70. {
  71.     struct queue *temp;
  72.  
  73.     temp=(struct queue *)malloc(sizeof(struct queue));
  74.  
  75.     temp->data=data;
  76.     temp->next=NULL;
  77.  
  78.     if(front==NULL)
  79.     {
  80.         front=temp;
  81.         rear=temp;
  82.     }
  83.     else
  84.     {
  85.         rear->next=temp;
  86.         rear=temp;
  87.     }
  88.  
  89.     printf("%d enqueued\n",temp->data);
  90.     size++;
  91.  
  92. }
  93.  
  94. void dequeue()
  95. {
  96.     struct queue *temp;
  97.     int data;
  98.  
  99.  
  100.     if(size<= 0 || !front)
  101.     {
  102.         printf("Queue is Empty");
  103.     }
  104.  
  105.     temp=front;
  106.  
  107.     data=temp->data;
  108.     front=front->next;
  109.  
  110.     free(temp);
  111.  
  112.     size--;
  113.  
  114.     printf("%d Dequeued",data);
  115.  
  116.     return 0;
  117. }
  118.  
  119. void displayList()
  120. {
  121.     struct queue *temp;
  122.  
  123.     temp=front;
  124.  
  125.     while(temp!= NULL)
  126.     {
  127.         printf("\n%d",temp->data);
  128.         temp=temp->next;
  129.     }
  130. }
  131.  
  132.  
  133.  
  134. void minmax()
  135. {
  136.     struct queue *temp;
  137.     int max,min;
  138.  
  139.     temp=front;
  140.  
  141.     max=temp->data;
  142.     min=temp->data;
  143.  
  144.     while(temp!=NULL)
  145.     {
  146.         if(temp->data>max)
  147.         {
  148.             max=temp->data;
  149.         }
  150.         if(temp->data<min)
  151.         {
  152.             min=temp->data;
  153.         }
  154.         temp=temp->next;
  155.     }
  156.     printf("Maximum element is : %d\n",max);
  157.     printf("Minimum element is : %d\n",min);
  158. }
  159.  
  160. void find()
  161. {
  162.     struct queue *temp;
  163.     int num,i,Item;
  164.  
  165.     i=0;
  166.  
  167.     temp=front;
  168.  
  169.     printf("Enter a number to find: ");
  170.     scanf("%d",&num);
  171.  
  172.     while(temp!=NULL)
  173.     {
  174.         if(temp->data==num)
  175.            {
  176.             i++;
  177.             Item=temp->data;
  178.            }
  179.  
  180.         temp=temp->next;
  181.     }
  182.    printf("Item Found %d times: %d\n",i,Item);
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement