Professional Documents
Culture Documents
1. Queue
i. Definition
ii. Queue in Computer Language
iii. Simulation of Operations
iv. Pseudo code of Queue Implementation
2. Books
3. References
Queue
Definition
front
Queue[4],MaxSize=4; 0 1 2 3 4
Queue
Initialize( ) front=rear=-1
Check IsEmpty
Check IsFull rear
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3
Initialize( ) front=rear=-1
Check IsEmpty EnQueue(3) front=rear=0
Check IsFull rear
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear++
Check IsFull rear
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6 2
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear = 1
Check IsFull rear
EnQueue( 2 ) rear++
EnQueue (add element
to back i.e. at the rear)
DeQueue (remove
element from the front)
FrontValue (retrieve
value of element from
front)
ShowQueue (print all
the values of queue
from front to rear)
Simulation of Operations
front
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6 2 5
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear = 1
Check IsFull rear
EnQueue( 2 ) rear = 2
EnQueue (add element EnQueue( 5 ) rear++
to back i.e. at the rear)
DeQueue (remove
element from the front)
FrontValue (retrieve
value of element from
front)
ShowQueue (print all
the values of queue
from front to rear)
Simulation of Operations
front
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6 2 5
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear = 1
Check IsFull rear
EnQueue( 2 ) rear = 2
EnQueue (add element EnQueue( 5 ) rear = 3
to back i.e. at the rear) EnQueue( 9 ) Queue Full, if (rear==(MaxSize-1))
DeQueue (remove
element from the front)
FrontValue (retrieve
value of element from
front)
ShowQueue (print all
the values of queue
from front to rear)
Simulation of Operations
front
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6 2 5
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear = 1
Check IsFull rear
EnQueue( 2 ) rear = 2
EnQueue (add element EnQueue( 5 ) rear = 3
to back i.e. at the rear) EnQueue( 9 ) Queue Full, if (rear==(MaxSize-1))
DeQueue() front++
DeQueue (remove
element from the front)
FrontValue (retrieve
value of element from
front)
ShowQueue (print all
the values of queue
from front to rear)
Simulation of Operations
front
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6 2 5
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear = 1
Check IsFull rear
EnQueue( 2 ) rear = 2
EnQueue (add element EnQueue( 5 ) rear = 3
to back i.e. at the rear) EnQueue( 9 ) Queue Full, if (rear==(MaxSize-1))
DeQueue() front = 1
DeQueue (remove DeQueue() front++
element from the front)
FrontValue (retrieve
value of element from
front)
ShowQueue (print all
the values of queue
from front to rear)
Simulation of Operations
front
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6 2 5
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear = 1
Check IsFull rear
EnQueue( 2 ) rear = 2
EnQueue (add element EnQueue( 5 ) rear = 3
to back i.e. at the rear) EnQueue( 9 ) Queue Full, if (rear==(MaxSize-1))
DeQueue() front = 1
DeQueue (remove DeQueue() front = 2
element from the front) DeQueue() front++
FrontValue (retrieve
value of element from
front)
ShowQueue (print all
the values of queue
from front to rear)
Simulation of Operations
front
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6 2 5
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear = 1
Check IsFull rear
EnQueue( 2 ) rear = 2
EnQueue (add element EnQueue( 5 ) rear = 3
to back i.e. at the rear) EnQueue( 9 ) Queue Full, if (rear==(MaxSize-1))
DeQueue() front = 1
DeQueue (remove DeQueue() front = 2
element from the front) DeQueue() front = 3
DeQueue() front=rear=-1, if ((front!=-1) && (front==rear))
FrontValue (retrieve
value of element from
front)
ShowQueue (print all
the values of queue
from front to rear)
Simulation of Operations
front
Queue[4],MaxSize=4; 0 1 2 3 4
Queue 3 6 2 5
Initialize( ) front=rear=-1
Check IsEmpty EnQueue( 3 ) front=rear=0
EnQueue( 6 ) rear = 1
Check IsFull rear
EnQueue( 2 ) rear = 2
EnQueue (add element EnQueue( 5 ) rear = 3
to back i.e. at the rear) EnQueue( 9 ) Queue Full, if (rear==(MaxSize-1))
DeQueue() front = 1
DeQueue (remove DeQueue() front = 2
element from the front) DeQueue() front = 3
FrontValue (retrieve DeQueue() front=rear=-1, if ((front!=-1) && (front==rear))
DeQueue() Queue Empty, if ((front==-1) && (rear==-1))
value of element from
front)
ShowQueue (print all
the values of queue
from front to rear)
A[0] A[1] A[2] A[3] A[4]
0 10 15 20 1. Enqueue (5)
2. Enqueue (10)
3. Enqueue (15)
4. Dequeue ()
5. Enqueue (20)
6. Enqueue (25)
7. Enqueue (30)
8. Enqueue (35)
Front = 0 + 1= 1 9. Dequque ()
Front = -1+1 = 0
Rear = 2+1 = 3 10. Enqueue (40)
Rear = -1+1 = 0
A[rear] = a[3] = 20 11. Dequeuq ()
A[rear]= x=5
Rear = 0+1=1 12. Dequeue ()
A[rear] = x = 10 13. Dequeue ()
Rear = 1+1=2 14. Dequeue ()
A[2] = x = 15 15. Dequeue ()
16. Dequeue()
Pseudo code of Queue Implementation
isEmpty(){
if ((front==-1) and (rear==-1)):
then return true;
}
isFull(){
if rear==(maxSize-1):
then return true;
}
enqueue(x){
if(queue full): {error: “queue full!”;}
otherwise if(queue is empty): {front=rear=0; insert x in queue[rear]}
otherwise: rear++; insert x in queue[rear];
}
Pseudo code of Queue Implementation
dequeue(){
if(queue empty): {error: “queue is empty! dequeue not possible”}
otherwise if (front and rear are equal): {front=rear=-1;}
otherwise: {front++;}
}
frontElement(){
return queue[front];
}
showQueue(){
if (queue empty)
error: “cannot show queue because it is empty”;
otherwise:
for: i=front; i<=rear; i++
output: queue[front];
}
void dequeue(){
else{ front++;}
}
Books
https://en.wikipedia.org/wiki/Queue_(abstract_data_type)
https://www.cs.usfca.edu/~galles/visualization/QueueArray.html (This is a great site
for visualizing stack operations)
“Advanced Data Structures”, Peter Brass, Cambridge University Press, 2008.
[Chapter 1: 1.2]