Tuesday 24 April 2012

4 th Experiment QUEUE OPERATION USING LINKED LISt


 ALGORITHM:-- QUEUE USING LINKED LIST:
-------------------------------------------------------------------------------------------------------------------------------------


Step-1: Start.
Step- 2: Create an object for the class lque.
Step- 3: do the following
a)      print the options
b)     read the choice
c)      i) if case is ‘Add queue’, use the object of the class to call the member function enque(). the members of the function are accessed through the pointers of the structure ‘node’. Thus queue is implemented using linked lists.
ii) If case is ‘delete queue’, use the object of the class to call the member function dequeue(). The manipulation is done through pointers.
iii) If case is ‘display’, use the object to call the member function display().
vi) If case is ‘quit’, display ‘bye’.
Step- 4: while the case is not ‘quit’, repeat Step-3.
Step- 5: Stop.

-----------------------------------------------------------------------------------------------------------------------------------
FLOW CHARTs
-----------------------------------------------------------------------------------------------------------------------------------



-----------------------------------------------------------------------------------------------------------------------------------
C++ IMPLEMENTATION
-----------------------------------------------------------------------------------------------------------------------------------
#include<iostream.h> #include<conio.h> #define NULL 0 class lque { private: struct node { int no; node *next; }; node *fptr,*rptr,*p,*temp; public: lque(); ~lque(); void enque(); void deque(); void display(); }; lque::lque() { fptr=rptr=NULL; } lque::~lque(){} void lque::enque() { node *temp; temp=new node; cout<<"\n Enter the no. :"; cin>>temp->no; temp->next=NULL; if(fptr==NULL) { fptr=temp; rptr=temp; } else { rptr->next=temp; rptr=rptr->next; } } void lque::deque() { if(fptr==NULL) { cout<<"\n Queue is empty"; return; } node *delptr,*temp; delptr=fptr; if(delptr!=NULL) { cout<<"\n popped element is "<<delptr->no; temp=fptr; fptr=fptr->next; delete delptr; } } void lque::display() { node *p; p=fptr; if(p==NULL) { cout<<"\n Queue is empty"; return; } cout<<"\n The elements present in queue\n"; while(p!=NULL) { cout<<p->no<<endl; p=p->next; } } void main() { int ch; lque lq; clrscr(); do { cout<<"\n 1. Add queue \n 2. Delete queue \n 3. Quit \n Enter ur choice:\n"; cin>>ch; switch(ch) { case 1: lq.enque(); lq.display(); getch(); break; case 2: lq.deque(); lq.display(); getch(); break; case 3: cout<<"\n Bye\n"; getch(); break; } } while(ch!=3); } OUTPUT: 1.Add queue 2.Delelte queue 3.Quit Enter ur choice: 1 Enter the no: 1 The elements present in queue 1 1.Add queue 2.Delelte queue 3.Quit Enter ur choice: 1 Enter the no: 2 The elements present in queue 1 2 1.Add queue 2.Delelte queue 3.Quit Enter ur choice: 2 popped element is 1 The elements present in queue 2 1.Add queue 2.Delelte queue 3.Quit Enter ur choice: 3 Bye

No comments:

Post a Comment