Queue Implementation Using Array & Linked List

6,453 views 16 slides Jun 11, 2014
Slide 1
Slide 1 of 16
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16

About This Presentation

No description available for this slideshow.


Slide Content

Queue Implementation Using Arrays & Linked List BY : SADIA ZAR

Basic Operations Two Basic Operations in Queue Enque : Inserting new element from rear end Deque : Removing existing element from front end Front End Rear End 0 1 2 3 4 5 6

Queue Using Arrays #include <iostream> using namespace std; class Queue { int * array ,size,f,r,count; public: Queue(); void Enque( int value); int Deque(); bool is_Empty(); bool is_Full(); }; Inserts an element that is passed through main function Removes an element at front

Constructor Queue::Queue() { cout<< "Enter size : " ; cin>>size; array = new int [size]; f=r=-1; count=0; }

Enque void Queue::Enque( int value) { if (!is_Full()) { array [++r]=value; count++; } else { cout<< "\n\nOverFlow ! \n\n" ; } }

Deque int Queue::Deque() { if (!is_Empty()) { count--; return array [++f]; } else { cout<< "\n\nUnderFlow ! \n\n" ; } }

Overflow & Underflow bool Queue::is_Empty() { return f==r==-1; } bool Queue::is_Full() { return count==size; } Underflow Overflow

main function void main() { Queue obj; obj.Enque(1); obj.Enque(2); obj.Enque(3); obj.Deque(); } 1 2 3 0 1 2 3 4 5 6

Queue using Linked List

Abstract Class #include <iostream> using namespace std; class Node { int value; Node*next; friend class Queue; public: Node() { next=NULL; } };

Class & Functions Declaration class Queue { Node *first,*last; public: Queue() { first=last=NULL; } void Enque( int v); bool is_Empty(); void Deque(); void Display(); }; first last

Enque void Queue::Enque( int v) { Node *n= new Node(); n->value=v; if (first==NULL) { last=first=n; } else { last->next=n; last=n; } } DATA NEXT

Deque void Queue::Deque() { if (!is_Empty()) { Node *temp=first; first=first->next; cout <<"\n\nThe data Dequeued is : " <<temp->value<<endl; delete temp; } }

Function to check Queue empty or not bool Queue::is_Empty() { return first==NULL||last==NULL; } UNDERFLOW

Display void Queue::Display() { Node *p = new Node; p = first; cout<< "\n\nQueue Elements are : \n\n" ; while (p!=NULL) { cout <<p->value<<endl; p = p->next; } }

main function Void main() { Queue Q; Q.Enque(12); Q.Enque(15); Q. Deque(); Q .Display(); } 100 200 12 15 200 NULL 100 200 first last 200
Tags