Skip to main content

Dynamic Queue Implementation using Linked List


#include<stdio.h>
#include<conio.h>

 void insertion();
 void deletion();
 void traverse();

 struct node
 { int num;
   struct node *next;
 }*front=NULL,*rear=NULL;

 typedef struct node node;
 typedef struct node* nptr;

 void main()
 { char choice;
   while(1)
   {
   clrscr();
   printf("DYNAMIC QUEUE\n\n");
   printf(" 1.Insertion\n");
   printf(" 2.Deletion\n");
   printf(" 3.Traverse\n");
   printf(" 4.EXIT\n");
   printf(" Enter your choice: ");
   fflush(stdin);
   scanf("%c",&choice);
   switch(choice)
   { case '1': insertion();
      break;
     case '2': deletion();
      break;
     case '3': traverse();
      break;
     case '4': exit(0);
     default: printf("\n\ninvalid choice");
   }
   getch();
  }
 }

 void insertion()
 { nptr p;
   int item;
   if((p=((nptr)malloc(sizeof(node))))!=NULL)
   { printf("\n enter the item: ");
     scanf("%d",&item);
     p->num=item;
     if(rear==NULL||front==NULL)
     { front=rear=p;
       p->next=NULL;
     }
     else
     { p->next=NULL;
       rear->next=p;
       rear=p;
     }
   }
   else
   { printf("\n Overflow");
   }
 }

 void deletion()
 { nptr p;
   if(front==NULL)
   { printf("\n underflow");
   }
   else
   if(front==rear)
   { p=front;
     printf("\n %d is deleted",p->num);
     front=rear=NULL;
     free(p);
   }
   else
   { p=front;
     printf("\n %d is deleted",p->num);
     front=front->next;
     free(p);
   }
 }

   void traverse()
  { nptr p;
    p=front;
    if(front==NULL)
    { printf("\n stack is empty");
    }
    else
    { printf("\n QUEUE: ");
      while(p!=NULL)
      { printf(" %d",p->num);
p=p->next;
      }
    }
  }

Comments

Popular posts from this blog

Use Case Diagram for Online Book Store

Online Movie Ticket Booking Sequence Diagram

Linear search & Binary search using Template

Write a program to search an element from a list. Give user the option to perform Linear or Binary search. Use Template functions. #include<iostream> using namespace std; template <class T> void Lsearch(T *a, T item, int n) { int z=0; for(int i=0;i<n;i++) { if(a[i]== item) { z=1; cout<<"\n Item found at position = "<<i+1<<"\n\n"; } else if(z!=1) { z=0; } } if(z==0) cout<<"\n Item not found in the list\n\n"; } template <class T> void Bsearch(T *a, T item, int n) { int beg=0,end=n-1; int mid=beg+end/2; while((a[mid]!=item) && (n>0)) { if(item>a[mid]) beg=mid; else end=mid; mid=(beg+end)/2; n--; } if(a[mid]==item) cout<<"\n Item found at position = "<<mid+1<<"\n\n"; else cout<<"\n Item not found in the list\n\n"; } void main() { int iarr[10] = {2,42,56,86,87,99,323,546,767,886};