SlideShare a Scribd company logo
Queues
Introduction to Queues
• A queue is a waiting line – seen in daily life
– A line of people waiting for a bank teller
– A line of cars at a toll both
• What other kinds of queues can you think of
The queue has a front and a rear.
$ $
Rear
Front
Front Rear
1 2 3 4
Front Rear
2 3 4
Front Rear
1 2 3
Add 4 to the Queue
Remove the element
from the Queue
Original Queue
In Queue
a. Items can be removed only at the front
b. Items can be added only at the other end, the back
Types Of Queues
• Linear Queue
• Circular Queue
• Double Ended Queue (Deque)
• Priority Queue
Double Ended Queue
Double ended queues, called deques for short, are a generalized form
of the queue. It is exactly like a queue except that elements can be
added to or removed from the head or the tail.
However, no element can be added and deleted from the middle.
In the computer’s memory, a deque is implemented using either a
circular array or a circular doubly linked list.
In a deque, two pointers are maintained, LEFT and RIGHT, which
point to either end of the deque. The elements in a deque extend from
the LEFT end to the RIGHT end and since it is circular, Dequeue[N–1]
is followed by Dequeue[0].
There are two variants of a double-ended queue. They
include :
• Input restricted deque In this, insertions can be done
only at one of the ends, while deletions can be done from
both ends.
• Output restricted deque In this deletions can be done only
at one of the ends, while insertions can be done on both
ends.
Priority Queues
A priority queue is a data structure in which each element is assigned
a priority. The priority of the element will be used to determine the
order in which the elements will be processed.
The general rules of processing the elements of a priority queue are
• An element with higher priority is processed before an element
with a lower priority.
• Two elements with the same priority are processed on a first-
come-first-served (FCFS) basis.
The Queue As an ADT
1. A queue is a sequence of data elements
2. Basic operations
a. Enqueue (add element to back)
b. Dequeue (remove element from front)
Enqueue & Dequeue operations
Array Implementation -Dequeue
When an item is taken from the queue, it always comes from the front.
This a dequeue operation.
Array Implementation -Enqueue
When an item is inserted into the queue, it always goes at the end (rear).
This a enqueue operation.
LINKED REPRESENTATION OF QUEUEs
Enqueue:
Dequeue
Circular Queue
09/10/08 14
Drawback of Linear Queue
• Once the queue is full, even though few elements from the front are deleted and
some occupied space is relieved, it is not possible to add anymore new elements,
as the rear has already reached the Queue’s rear most position.
Circular Queue
• This queue is not linear but circular.
• Its structure can be like the following figure:
Figure: Circular Queue having
Rear = 5 and Front = 0
• In circular queue, once the Queue is full the
"First" index of the Queue becomes the
"Rear" most index, if and only if the "Front"
element has moved forward. otherwise it will be
a "Queue overflow" state.
09/10/08 15
Algorithms for Insert Operations in Circular Queue
For Insert Operation
Insert-Circular-Q(CQueue, Rear, Front, N, Item)
Here, CQueue is a circular queue.
Rear represents the location in which the data element is to be inserted and
Front represents the location from which the data element is to be removed.
N is the maximum size of CQueue and
Item is the new item to be added.
Initailly Rear = -1 and Front = -1.
1. If Front = -1 and Rear = -1 then Set Front :=0 and go to step 4.
2. If Front =0 and Rear = N-1 or Front = Rear + 1
then Print: “Circular Queue Overflow” and Return.
3. If Rear = N -1 then Set Rear := 0 and go to step 4.
4. Set CQueue [Rear] := Item. and Rear:=Rear + 1
5. Return
09/10/08 16
For Delete Operation
Delete-Circular-Q(CQueue, Front, Rear, Item)
CQueue is the place where data are stored.
Rear represents the location in which the data element is to be inserted and
Front represents the location from which the data element is to be removed.
Front element is assigned to Item.
Initially, Front = -1.
*..Delete without Insertion
1. If Front = -1 then Print: “Circular Queue Underflow” and Return.
2. Set Item := CQueue [Front]
3. If Front = N – 1 then Set Front = 0 and Return.
4. If Front = Rear then Set Front = Rear = -1 and Return.
5. Set Front := Front + 1
6. Return.
09/10/08 17
Example- ENQUEUE
Circular queue with N = 5.
Rear
1. Initially, Rear = 0, Front = 0.
2. Insert 10, Rear = 1, Front = 1.
3. Insert 50, Rear = 2, Front = 1.
4. Insert 20, Rear = 3, Front = 0.
5. Insert 70, Rear = 4, Front = 1.
6. Delete front, Rear = 4, Front = 2.
Rear
Rear
Rear
Rear
Front
Front
Front
Front
Front
Initailly Rear = -1 and Front = -1.
1. If Front = -1 and Rear = -1 then Set Front :=0 and go to step 4.
2. If Front =0 and Rear = N-1 or Front = Rear + 1
then Print: “Circular Queue Overflow” and Return.
3. If Rear = N -1 then Set Rear := 0 and go to step 4.
4. Set CQueue [Rear] := Item. and Rear:=Rear + 1
5. Return
09/10/08 18
Example- ENQUEUE
Circular queue with N = 5.
Rear
1. Initially, Rear = -1, Front =-1
2. Insert 10, Rear = 0, Front = 0.
3. Insert 50, Rear = 1, Front = 0.
4. Insert 20, Rear = 2, Front = 0.
5. Insert 70, Rear = 3, Front = 0.
6. Delete front, Rear = 3, Front =1.
Rear
Rear
Rear
Rear
Front
Front
Front
Front
Front
Initailly Rear = -1 and Front = -1.
1. If Front = -1 and Rear = -1 then Set Front :=0 and go to step 4.
2. If Front =0 and Rear = N-1 or Front = Rear + 1
then Print: “Circular Queue Overflow” and Return.
3. If Rear = N -1 then Set Rear := 0 and go to step 4.
4. Set CQueue [Rear] := Item. and Rear:=Rear + 1
5. Return
09/10/08 19
7. Insert 100, Rear = 4, Front = 1.
8. Insert 40, Rear = 0, Front = 1.
9. Insert 140, Rear = 0, Front = 1.
As Front = Rear + 1, so Queue overflow.
10. Delete front, Rear = 0, Front = 2.
Front
Rear
Front
Rear
Rear
Rear
Front
Front
11. Delete front, Rear = 0, Front = 3.
12. Delete front, Rear = 0, Front = 4.
Rear
Rear
Front
Front
Initailly Rear = -1 and Front = -1.
1. If Front = -1 and Rear = -1 then Set Front :=0 and go to step 4.
2. If Front =0 and Rear = N-1 or Front = Rear + 1
then Print: “Circular Queue Overflow” and Return.
3. If Rear = N -1 then Set Rear := 0 and go to step 4.
4. Set CQueue [Rear] := Item. and Rear:=Rear + 1
5. Return
Initially, Front = -1.
1. If Front = -1 then Print: “Circular Queue Underflow” and Return.
2. Set Item := CQueue [Front]
3. If Front = N – 1 then Set Front = 0 and Return.
4. If Front = Rear then Set Front = Rear = -1 and Return.
5. Set Front := Front + 1
6. Return.
ENQUEUE/DEQUEUE
Circular queue with N = 5.
Double Ended Queue
Double ended queues, called deques for short, are a generalized form
of the queue. It is exactly like a queue except that elements can be
added to or removed from the head or the tail.
However, no element can be added and deleted from the middle.
In the computer’s memory, a deque is implemented using either a
circular array or a circular doubly linked list.
In a deque, two pointers are maintained, LEFT and RIGHT, which
point to either end of the deque. The elements in a deque extend from
the LEFT end to the RIGHT end and since it is circular, Dequeue[N–1]
is followed by Dequeue[0].
There are two variants of a double-ended queue. They
include :
• Input restricted deque In this, insertions can be done
only at one of the ends, while deletions can be done from
both ends.
• Output restricted deque In this deletions can be done only
at one of the ends, while insertions can be done on both
ends.
Priority Queues
A priority queue is a data structure in which each element is assigned
a priority. The priority of the element will be used to determine the
order in which the elements will be processed.
The general rules of processing the elements of a priority queue are
• An element with higher priority is processed before an element
with a lower priority.
• Two elements with the same priority are processed on a first-
come-first-served (FCFS) basis.

More Related Content

Similar to 08_Queues.pptx showing how que works given vertex (20)

PPTX
Detalied information of queue
Smit Parikh
 
PPTX
RPT_02_B_Queue presentation for FE students
AshishFamt
 
PPT
Queue
Muhammad Farhan
 
PDF
Queue
Swarup Boro
 
PPT
Stacks and Queues concept in Data Structures
BodapatiNagaeswari1
 
PPTX
Circular queue
Lovely Professional University
 
PPTX
Circular queue
Lovely Professional University
 
PPTX
apllicationsof queffffffffffffffffffffffffffffue.pptx
shesnasuneer
 
PPTX
Queue(lecture8).pptx
singhprpg
 
PPTX
queue & its applications
somendra kumar
 
PPTX
Unit 4 queue
Dabbal Singh Mahara
 
PPTX
queue_final.pptx
MeghaKulkarni27
 
PPTX
queue.pptx
NSudhaEccs
 
PPT
cp264_lecture18_queue.ppt
ssuserff72e4
 
PPTX
Queue
Krishanu Ghosh
 
PPT
Lecture three of datat structures ,.The Queue-ds.ppt
donemoremaregere376
 
PPTX
Queue - Data Structure - Notes
Omprakash Chauhan
 
PPT
Queues & ITS TYPES
Soumen Santra
 
PDF
LEC4-DS ALGO.pdf
MuhammadUmerIhtisham
 
PPTX
Queue-Data Structure
Paurav Shah
 
Detalied information of queue
Smit Parikh
 
RPT_02_B_Queue presentation for FE students
AshishFamt
 
Stacks and Queues concept in Data Structures
BodapatiNagaeswari1
 
apllicationsof queffffffffffffffffffffffffffffue.pptx
shesnasuneer
 
Queue(lecture8).pptx
singhprpg
 
queue & its applications
somendra kumar
 
Unit 4 queue
Dabbal Singh Mahara
 
queue_final.pptx
MeghaKulkarni27
 
queue.pptx
NSudhaEccs
 
cp264_lecture18_queue.ppt
ssuserff72e4
 
Lecture three of datat structures ,.The Queue-ds.ppt
donemoremaregere376
 
Queue - Data Structure - Notes
Omprakash Chauhan
 
Queues & ITS TYPES
Soumen Santra
 
LEC4-DS ALGO.pdf
MuhammadUmerIhtisham
 
Queue-Data Structure
Paurav Shah
 

More from SadiaSharmin40 (8)

PPT
16807097.ppt b tree are a good data structure
SadiaSharmin40
 
PPT
chap09alg.ppt for string matching algorithm
SadiaSharmin40
 
PPT
brown.ppt for identifying rabin karp algo
SadiaSharmin40
 
PPT
huffman algoritm upload for understand.ppt
SadiaSharmin40
 
PPT
HuffmanStudent.ppt used to show how huffman code
SadiaSharmin40
 
PPT
MergeSort.ppt shows how merge sort is done
SadiaSharmin40
 
PPT
how to use counting sort algorithm to sort array
SadiaSharmin40
 
PDF
ER diagram slides for datanase stujdy-1.pdf
SadiaSharmin40
 
16807097.ppt b tree are a good data structure
SadiaSharmin40
 
chap09alg.ppt for string matching algorithm
SadiaSharmin40
 
brown.ppt for identifying rabin karp algo
SadiaSharmin40
 
huffman algoritm upload for understand.ppt
SadiaSharmin40
 
HuffmanStudent.ppt used to show how huffman code
SadiaSharmin40
 
MergeSort.ppt shows how merge sort is done
SadiaSharmin40
 
how to use counting sort algorithm to sort array
SadiaSharmin40
 
ER diagram slides for datanase stujdy-1.pdf
SadiaSharmin40
 
Ad

Recently uploaded (20)

PPTX
sarthak nayi brain strom bca sem 3 .pptx
parekhsarthak8
 
PDF
SpatzAI is a self-managed micro-conflict toolkit that helps teams resolve one...
Desmond Sherlock
 
PDF
250621-Medical Review in Pharmacovigilance-CQS.pdf
Obaid Ali / Roohi B. Obaid
 
PDF
Dubai-Tech-The-Road-to-2033-Founders-Forum-Group.pdf
PavelVeselovskiy
 
PPTX
Introduction to product management –Module 1.pptx
FarheenAhmad9
 
PPTX
Itc market and how ITC shift form cigarette market to all other market like w...
sanu1902singh
 
PDF
250621-WHO-UMC Causality Assessment-CQS.pdf
Obaid Ali / Roohi B. Obaid
 
PPTX
Multicolor leadership kepemimpinan untuk organisasi
GusTri5
 
PDF
Branding Potentials of Keyword Search Ads The Effects of Ad Rankings on Bran...
hritikamishra2k
 
PPTX
english presenation on professional writing and its types.pptx
WajahatAli434864
 
PPTX
Project Management with Knowledge Areas and AI
Usman Zafar Malik
 
PPTX
Agile Chennai 18-19 July 2025 | Agility for Resilience - Adaptive Systems & C...
AgileNetwork
 
PPTX
MFJDJSJSNXJCJJDJSNSKSDJNJCJSKSJAJSJDJKDKSJS
MaryanneRoseElder
 
PPTX
Agile Chennai 18-19 July 2025 | Kanban: The Shop Floor’s Secret to Smooth Wor...
AgileNetwork
 
PPTX
Sardar Vallabhbhai Patel ironman of india.pptx
pruthvi07899
 
PDF
Biography Of Carl Alameda | Assistant City Manager
Carl Alameda
 
PPTX
Using the DISC for Leadership Development.pptx
joetrojan
 
PPTX
Empowering Women Achieving Dreams Setting and Reaching Your Personal Profess...
Muhammad Musawar Ali
 
PDF
Asia’s Health Titans - Meet the Hospital CEOs Revolutionizing Care Across the...
Gorman Bain Capital
 
PDF
Leadership and development I importance.pdf
swaroopshresth45
 
sarthak nayi brain strom bca sem 3 .pptx
parekhsarthak8
 
SpatzAI is a self-managed micro-conflict toolkit that helps teams resolve one...
Desmond Sherlock
 
250621-Medical Review in Pharmacovigilance-CQS.pdf
Obaid Ali / Roohi B. Obaid
 
Dubai-Tech-The-Road-to-2033-Founders-Forum-Group.pdf
PavelVeselovskiy
 
Introduction to product management –Module 1.pptx
FarheenAhmad9
 
Itc market and how ITC shift form cigarette market to all other market like w...
sanu1902singh
 
250621-WHO-UMC Causality Assessment-CQS.pdf
Obaid Ali / Roohi B. Obaid
 
Multicolor leadership kepemimpinan untuk organisasi
GusTri5
 
Branding Potentials of Keyword Search Ads The Effects of Ad Rankings on Bran...
hritikamishra2k
 
english presenation on professional writing and its types.pptx
WajahatAli434864
 
Project Management with Knowledge Areas and AI
Usman Zafar Malik
 
Agile Chennai 18-19 July 2025 | Agility for Resilience - Adaptive Systems & C...
AgileNetwork
 
MFJDJSJSNXJCJJDJSNSKSDJNJCJSKSJAJSJDJKDKSJS
MaryanneRoseElder
 
Agile Chennai 18-19 July 2025 | Kanban: The Shop Floor’s Secret to Smooth Wor...
AgileNetwork
 
Sardar Vallabhbhai Patel ironman of india.pptx
pruthvi07899
 
Biography Of Carl Alameda | Assistant City Manager
Carl Alameda
 
Using the DISC for Leadership Development.pptx
joetrojan
 
Empowering Women Achieving Dreams Setting and Reaching Your Personal Profess...
Muhammad Musawar Ali
 
Asia’s Health Titans - Meet the Hospital CEOs Revolutionizing Care Across the...
Gorman Bain Capital
 
Leadership and development I importance.pdf
swaroopshresth45
 
Ad

08_Queues.pptx showing how que works given vertex

  • 2. Introduction to Queues • A queue is a waiting line – seen in daily life – A line of people waiting for a bank teller – A line of cars at a toll both • What other kinds of queues can you think of The queue has a front and a rear. $ $ Rear Front
  • 3. Front Rear 1 2 3 4 Front Rear 2 3 4 Front Rear 1 2 3 Add 4 to the Queue Remove the element from the Queue Original Queue In Queue a. Items can be removed only at the front b. Items can be added only at the other end, the back
  • 4. Types Of Queues • Linear Queue • Circular Queue • Double Ended Queue (Deque) • Priority Queue
  • 5. Double Ended Queue Double ended queues, called deques for short, are a generalized form of the queue. It is exactly like a queue except that elements can be added to or removed from the head or the tail. However, no element can be added and deleted from the middle. In the computer’s memory, a deque is implemented using either a circular array or a circular doubly linked list. In a deque, two pointers are maintained, LEFT and RIGHT, which point to either end of the deque. The elements in a deque extend from the LEFT end to the RIGHT end and since it is circular, Dequeue[N–1] is followed by Dequeue[0].
  • 6. There are two variants of a double-ended queue. They include : • Input restricted deque In this, insertions can be done only at one of the ends, while deletions can be done from both ends. • Output restricted deque In this deletions can be done only at one of the ends, while insertions can be done on both ends.
  • 7. Priority Queues A priority queue is a data structure in which each element is assigned a priority. The priority of the element will be used to determine the order in which the elements will be processed. The general rules of processing the elements of a priority queue are • An element with higher priority is processed before an element with a lower priority. • Two elements with the same priority are processed on a first- come-first-served (FCFS) basis.
  • 8. The Queue As an ADT 1. A queue is a sequence of data elements 2. Basic operations a. Enqueue (add element to back) b. Dequeue (remove element from front) Enqueue & Dequeue operations
  • 9. Array Implementation -Dequeue When an item is taken from the queue, it always comes from the front. This a dequeue operation.
  • 10. Array Implementation -Enqueue When an item is inserted into the queue, it always goes at the end (rear). This a enqueue operation.
  • 11. LINKED REPRESENTATION OF QUEUEs Enqueue:
  • 14. 09/10/08 14 Drawback of Linear Queue • Once the queue is full, even though few elements from the front are deleted and some occupied space is relieved, it is not possible to add anymore new elements, as the rear has already reached the Queue’s rear most position. Circular Queue • This queue is not linear but circular. • Its structure can be like the following figure: Figure: Circular Queue having Rear = 5 and Front = 0 • In circular queue, once the Queue is full the "First" index of the Queue becomes the "Rear" most index, if and only if the "Front" element has moved forward. otherwise it will be a "Queue overflow" state.
  • 15. 09/10/08 15 Algorithms for Insert Operations in Circular Queue For Insert Operation Insert-Circular-Q(CQueue, Rear, Front, N, Item) Here, CQueue is a circular queue. Rear represents the location in which the data element is to be inserted and Front represents the location from which the data element is to be removed. N is the maximum size of CQueue and Item is the new item to be added. Initailly Rear = -1 and Front = -1. 1. If Front = -1 and Rear = -1 then Set Front :=0 and go to step 4. 2. If Front =0 and Rear = N-1 or Front = Rear + 1 then Print: “Circular Queue Overflow” and Return. 3. If Rear = N -1 then Set Rear := 0 and go to step 4. 4. Set CQueue [Rear] := Item. and Rear:=Rear + 1 5. Return
  • 16. 09/10/08 16 For Delete Operation Delete-Circular-Q(CQueue, Front, Rear, Item) CQueue is the place where data are stored. Rear represents the location in which the data element is to be inserted and Front represents the location from which the data element is to be removed. Front element is assigned to Item. Initially, Front = -1. *..Delete without Insertion 1. If Front = -1 then Print: “Circular Queue Underflow” and Return. 2. Set Item := CQueue [Front] 3. If Front = N – 1 then Set Front = 0 and Return. 4. If Front = Rear then Set Front = Rear = -1 and Return. 5. Set Front := Front + 1 6. Return.
  • 17. 09/10/08 17 Example- ENQUEUE Circular queue with N = 5. Rear 1. Initially, Rear = 0, Front = 0. 2. Insert 10, Rear = 1, Front = 1. 3. Insert 50, Rear = 2, Front = 1. 4. Insert 20, Rear = 3, Front = 0. 5. Insert 70, Rear = 4, Front = 1. 6. Delete front, Rear = 4, Front = 2. Rear Rear Rear Rear Front Front Front Front Front Initailly Rear = -1 and Front = -1. 1. If Front = -1 and Rear = -1 then Set Front :=0 and go to step 4. 2. If Front =0 and Rear = N-1 or Front = Rear + 1 then Print: “Circular Queue Overflow” and Return. 3. If Rear = N -1 then Set Rear := 0 and go to step 4. 4. Set CQueue [Rear] := Item. and Rear:=Rear + 1 5. Return
  • 18. 09/10/08 18 Example- ENQUEUE Circular queue with N = 5. Rear 1. Initially, Rear = -1, Front =-1 2. Insert 10, Rear = 0, Front = 0. 3. Insert 50, Rear = 1, Front = 0. 4. Insert 20, Rear = 2, Front = 0. 5. Insert 70, Rear = 3, Front = 0. 6. Delete front, Rear = 3, Front =1. Rear Rear Rear Rear Front Front Front Front Front Initailly Rear = -1 and Front = -1. 1. If Front = -1 and Rear = -1 then Set Front :=0 and go to step 4. 2. If Front =0 and Rear = N-1 or Front = Rear + 1 then Print: “Circular Queue Overflow” and Return. 3. If Rear = N -1 then Set Rear := 0 and go to step 4. 4. Set CQueue [Rear] := Item. and Rear:=Rear + 1 5. Return
  • 19. 09/10/08 19 7. Insert 100, Rear = 4, Front = 1. 8. Insert 40, Rear = 0, Front = 1. 9. Insert 140, Rear = 0, Front = 1. As Front = Rear + 1, so Queue overflow. 10. Delete front, Rear = 0, Front = 2. Front Rear Front Rear Rear Rear Front Front 11. Delete front, Rear = 0, Front = 3. 12. Delete front, Rear = 0, Front = 4. Rear Rear Front Front Initailly Rear = -1 and Front = -1. 1. If Front = -1 and Rear = -1 then Set Front :=0 and go to step 4. 2. If Front =0 and Rear = N-1 or Front = Rear + 1 then Print: “Circular Queue Overflow” and Return. 3. If Rear = N -1 then Set Rear := 0 and go to step 4. 4. Set CQueue [Rear] := Item. and Rear:=Rear + 1 5. Return Initially, Front = -1. 1. If Front = -1 then Print: “Circular Queue Underflow” and Return. 2. Set Item := CQueue [Front] 3. If Front = N – 1 then Set Front = 0 and Return. 4. If Front = Rear then Set Front = Rear = -1 and Return. 5. Set Front := Front + 1 6. Return. ENQUEUE/DEQUEUE Circular queue with N = 5.
  • 20. Double Ended Queue Double ended queues, called deques for short, are a generalized form of the queue. It is exactly like a queue except that elements can be added to or removed from the head or the tail. However, no element can be added and deleted from the middle. In the computer’s memory, a deque is implemented using either a circular array or a circular doubly linked list. In a deque, two pointers are maintained, LEFT and RIGHT, which point to either end of the deque. The elements in a deque extend from the LEFT end to the RIGHT end and since it is circular, Dequeue[N–1] is followed by Dequeue[0].
  • 21. There are two variants of a double-ended queue. They include : • Input restricted deque In this, insertions can be done only at one of the ends, while deletions can be done from both ends. • Output restricted deque In this deletions can be done only at one of the ends, while insertions can be done on both ends.
  • 22. Priority Queues A priority queue is a data structure in which each element is assigned a priority. The priority of the element will be used to determine the order in which the elements will be processed. The general rules of processing the elements of a priority queue are • An element with higher priority is processed before an element with a lower priority. • Two elements with the same priority are processed on a first- come-first-served (FCFS) basis.