Advertisement
sujonshekh

QUeUe

Apr 10th, 2017
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.58 KB | None | 0 0
  1. #include<stdio.h>
  2. struct node
  3. {
  4.     int data;
  5.     struct node *next;
  6.  
  7. };
  8. void Insertion(struct node *f, struct node *r,int vv);
  9. void Display(struct node *f);
  10. void Deletion (struct node *f,struct node *r);
  11. void Count (struct node *f);
  12.  
  13. int main()
  14. {
  15.  
  16.  
  17. int c,v;
  18. struct node *front, *rear;
  19. front=(struct node*)malloc(sizeof (struct node));
  20. rear =(struct node*)malloc(sizeof (struct node));
  21. front ->data=0;
  22. front ->next=NULL;
  23. rear  ->next=NULL;
  24. while(1)
  25. {
  26.     printf("\n -----Menu-----\n");
  27.      printf("\n 0 For Exit\n");
  28.       printf ("\n 1 For Insertion\n");
  29.        printf("\n 2 For Deletion\n");
  30.         printf ("\n 3 For Display\n");
  31.          printf ("\n 4 For Count\n");
  32.           printf("\n Enter Your choice\n");
  33.           scanf ("%d",&c);
  34.           switch(c)
  35.           {
  36.               case 0: exit(0);
  37.                break;
  38.               case 1:printf("\n choice =Insertion\n");
  39.                      printf("\n Enter New Value\n");
  40.                      scanf ("%d",&v);
  41.                      Insertion (front,rear,v);
  42.                      break;
  43.  
  44.               case 2:printf("\n choice=Deletion\n");
  45.               if(front->next!=NULL)
  46.               Deletion(front,rear);
  47.               else
  48.               printf("\n The QUEUE is Empty");
  49.               break;
  50.  
  51.               case 3:printf("\n choice=Display\n");
  52.                      if(front ->next!=NULL)
  53.                      Display(front);
  54.                      else
  55.                      printf("\n The Queue is Empty\n\n");
  56.                      break;
  57.  
  58.               case 4:printf("\n choice=Count\n");
  59.                      Count(front);
  60.                      break;
  61.  
  62.             default: printf("\n Wrong choice");
  63.           }
  64. }
  65. }
  66. void Insertion(struct node *f, struct node *r,int vv)
  67. {
  68. struct node *temp;
  69. temp=(struct node*)malloc(sizeof (struct node));
  70. temp->data=vv;
  71. temp->next=NULL;
  72. if(f->next==NULL)
  73. {
  74.     f->next=temp;
  75.     r->next=temp;
  76. }
  77. else
  78. {
  79.     r->next->next=temp;
  80.     r->next=temp;
  81. }
  82. }
  83. void Display(struct node *f)
  84. {
  85.     while (f->next!=NULL)
  86.     {
  87.         printf("\t %d",f->next->data);
  88.         f=f->next;
  89.     }
  90. }
  91. void Count (struct node *f)
  92. {
  93.     int t=0;
  94.     while(f->next!=NULL)
  95.     {
  96.         t=t+1;
  97.         f=f->next;
  98.     }
  99.     printf("\n Total node=%d \n\n",t);
  100. }
  101. void Deletion (struct node *f,struct node *r)
  102. {
  103.     struct node*temp;
  104.     temp=f->next;
  105.     if(f->next==r->next)
  106.     {
  107.         f->next=NULL;
  108.         r->next=NULL;
  109.     }
  110.     else
  111.     {
  112.         f->next=temp->next;
  113.     }
  114.     printf("\n THE DELETED NODE=%d\n\n",temp->data);
  115.     free(temp);
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement