SlideShare a Scribd company logo
4
Most read
11
Most read
13
Most read
QUEUES
Unit 1.2
Intro
2
Movie Hall Ticketing
One Way Traffic
Intro
• Queue is a linear list of elements in which deletion of an element can
take place at one end, called the front and insertion can take place at
the other end, called the rear.
• The first element in a queue will be the first one to be removed from
the list.
• Queues are also called FIFO (First In First Out) i.e. the data
item stored first will be accessed first
3
Queue Representation
• In queue, we access both ends for different reasons
4
Applications of queue
• Serving requests on a single shared resource, like a printer, CPU task
scheduling etc.
• In real life, Call Center phone systems will use Queues, to hold
people calling them in an order, until a service representative is free.
• Handling of interrupts in real-time systems. The interrupts are
handled in the same order as they arrive, First come first served.
5
The queue as an ADT
• A queue q of type T is a finite sequence of elements with the
operations
• MakeEmpty(q): To make q as an empty queue
• IsEmpty(q): To check whether the queue q is empty. Return true if q is
empty, return false otherwise.
• IsFull(q): To check whether the queue q is full. Return true in q is full,
return false otherwise.
• Enqueue(q, x): To insert an item x at the rear of the queue, if and only if
q is not full.
• Dequeue(q): To delete an item from the front of the queue q if and only if
q is not empty.
• Traverse (q): To read entire queue that is display the content of the queue.
6
Enqueue Operation
• Queue maintains two data pointers, front and rear
• The following steps should be taken to enqueue(insert) data into
queue –
• Step 1 – Check if queue is full
• Step 2 – if queue is full
produce overflow error and exit
else
increment rear pointer to point next empty space
and add data element to the queue location, where rear is
pointing
• Step 3 - return success
7
8
Implementation of enqueue()
int enqueue(int data) {
if(isfull())
return 0;
rear = rear + 1;
queue[rear] = data;
return 1;
}
9
Dequeue Operation
• Accessing data from queue is a process of two steps
• Access the data from where front is pointing
• And remove the data after access
• The following steps are taken to perform dequeue operation
• Step 1 – Check if queue is empty
• Step 2 – if queue is empty
produce underflow error and exit
else
access data where front is pointing, increment front pointer
to point next available data element
• Step 3 – return success.
10
11
Implementation of dequeue()
int dequeue() {
if(isempty()) {
return 0;
}
int data = queue[front];
front = front + 1;
return data;
}
12
Implementation of queue
• There are two techniques for implementing the queue:
• Array implementation of queue (static memory allocation)
• Linear array implementation (Linear Queue)
• Circular array Implementation (Circular queue)
• Linked list implementation of queue (dynamic memory allocation)
13
Array implementation of queue
• The easies way of implementing a queue is by using an Array.
• Initially head(FRONT) and the tail(REAR) of the queue points at the
first index of the array.
• As we add elements to the queue, we can either move tail before
adding another item or we can move the tail after adding the item,
while the head remains at the first index.
14
Linear Queue
15
Linear Queue
Insertion of an item in queue Deletion of an item from queue
1. Initialize front=0 and rear=-1
if rear>=MAXSIZE-1
print “queue overflow” and return
else
set rear=rear+1
queue[rear]=item
2. end
1. if rear<front
print “queue is empty” and return
else
item=queue[front++]
2. end
16
Problems with Linear queue implementation
• Both rear and front indices are increased but never decreased.
• As items are removed from the queue, the storage space at the
beginning of the array is discarded and never used again.
• Wastage of the space is the main problem with linear queue which is
illustrated by the following example.
17
Circular queue
• A queue where the start and end of the queue are joined together.
• A circular queue is one in which the insertion of a new element is
done at very first location of the queue if the last location of the queue
is full.
18
19
Circular queue
isFull() IsEmpty
- If HEAD == (Tail % MAX) + 1
Then Full <- True;
Else Full <- False;
- If they have caught up to each other, then it’s full
- If Head ==Tail
Then Full <- True;
Else Full <- False;
20
Circular queue
Enqueue operation Dequeue operation
Step 1. start
Step 2. if (front == (rear+1)%max)
Print error “circular queue overflow “
Step 3. else{
rear = (rear+1)%max
Q[rear] = element;
}
Step 4. stop
Step 1. start
Step 2. if isEmpty() == True
Print error “Queue is Empty“
Step 3. else{
element = Q[front]
front = (front + 1) % max
}
Step 4. stop
21
References
• https://www.cs.cmu.edu/~adamchik/15-121/lectures/Stacks%20and%20Queues/Stacks%20and%20Queu
• http://www.tutorialspoint.com/data_structures_algorithms/dsa_queue.htm
• http://www.studytonight.com/data-structures/queue-data-structure
• https://www.youtube.com/watch?v=g9su-lnW2Ks
• https://www.youtube.com/watch?v=ia__kyuwGag
• https://www.quora.com/What-is-a-circular-queue
• http://basicdatastructures.blogspot.com/2007/12/circular-queue-data-structure.html
• http://btechsmartclass.com/DS/U2_T10.html
• http://scanftree.com/Data_Structure/circular-queue
• http://btechsmartclass.com/DS/U2_T10.html
22

More Related Content

PPSX
Data Structure (Queue)
PPTX
Ppt on solar cell
PPT
Cloud computing
PPT
Queue data structure
PDF
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
PPTX
Sumo tutorial: 1) Manual Network creation, 2) OSM to Netwrok, 3) OD Matrix to...
PPTX
Slides de présentation de la thèse du doctorat
Data Structure (Queue)
Ppt on solar cell
Cloud computing
Queue data structure
Analyse en composantes principales, ACP, sous SPSS (Principal Component Analy...
Sumo tutorial: 1) Manual Network creation, 2) OSM to Netwrok, 3) OD Matrix to...
Slides de présentation de la thèse du doctorat

What's hot (20)

PPTX
Stacks IN DATA STRUCTURES
PPTX
Priority Queue in Data Structure
PPTX
Linked List
PPT
Singly link list
PPTX
heap Sort Algorithm
PDF
sparse matrix in data structure
PPT
Linked lists
PPT
B trees dbms
PPTX
Linked list
PPTX
PPTX
Tree Traversal
PPTX
Abstract Data Types
PPTX
contiguous memory allocation.pptx
PPTX
Bubble sort | Data structure |
PPTX
PPTX
stack & queue
PPTX
Data structure and its types
PPTX
Data structures - unit 1
PPT
3.9 external sorting
Stacks IN DATA STRUCTURES
Priority Queue in Data Structure
Linked List
Singly link list
heap Sort Algorithm
sparse matrix in data structure
Linked lists
B trees dbms
Linked list
Tree Traversal
Abstract Data Types
contiguous memory allocation.pptx
Bubble sort | Data structure |
stack & queue
Data structure and its types
Data structures - unit 1
3.9 external sorting
Ad

Similar to Queue AS an ADT (Abstract Data Type) (20)

PPTX
@Chapter 4 DSA Part II.pptx
PPTX
Stack and Queue.pptx
PPTX
Queue ppt
PPTX
queueppt-191018053228 (1).pptx
PPTX
queue.pptx
PPTX
PPTX
DS ppt1.pptx.c programing. Engineering. Data structure
PPTX
Queue Data Structure
PPTX
Unit 4 queue
PPT
Chapter 4.pptmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
PPT
queue data structures-linear data structure
PPT
10 -queues using array_07485555555510.ppt
PPTX
Queue types of queue and algorithms and queue
PPTX
Queues
PPTX
VCE Unit 03vv.pptx
PPT
The Queue in Data structure and algorithm
PDF
LEC4-DS ALGO.pdf
PPTX
DS10-QUEUE0000000000000000000000000000000000000.pptx
PDF
PPTX
Queue - Data Structure - Notes
@Chapter 4 DSA Part II.pptx
Stack and Queue.pptx
Queue ppt
queueppt-191018053228 (1).pptx
queue.pptx
DS ppt1.pptx.c programing. Engineering. Data structure
Queue Data Structure
Unit 4 queue
Chapter 4.pptmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
queue data structures-linear data structure
10 -queues using array_07485555555510.ppt
Queue types of queue and algorithms and queue
Queues
VCE Unit 03vv.pptx
The Queue in Data structure and algorithm
LEC4-DS ALGO.pdf
DS10-QUEUE0000000000000000000000000000000000000.pptx
Queue - Data Structure - Notes
Ad

More from Self-Employed (7)

PPT
Infix prefix postfix
PPTX
Ds lec 5_chap4
PPT
Discrete mathematics counting and logic relation
PPTX
Algorithm and C code related to data structure
PPT
Abstract data types (adt) intro to data structure part 2
PPTX
2.2 inverse of a matrix
PPTX
8086 architecture
Infix prefix postfix
Ds lec 5_chap4
Discrete mathematics counting and logic relation
Algorithm and C code related to data structure
Abstract data types (adt) intro to data structure part 2
2.2 inverse of a matrix
8086 architecture

Recently uploaded (20)

PPTX
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
DOCX
UPPER GASTRO INTESTINAL DISORDER.docx
PDF
Open folder Downloads.pdf yes yes ges yes
PDF
From loneliness to social connection charting
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PPTX
Pharmacology of Heart Failure /Pharmacotherapy of CHF
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
STATICS OF THE RIGID BODIES Hibbelers.pdf
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
Introduction and Scope of Bichemistry.pptx
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PPTX
Renaissance Architecture: A Journey from Faith to Humanism
PPTX
Cardiovascular Pharmacology for pharmacy students.pptx
PDF
Piense y hagase Rico - Napoleon Hill Ccesa007.pdf
PDF
The Final Stretch: How to Release a Game and Not Die in the Process.
PDF
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
PPTX
Onica Farming 24rsclub profitable farm business
PDF
Business Ethics Teaching Materials for college
Introduction to Child Health Nursing – Unit I | Child Health Nursing I | B.Sc...
UPPER GASTRO INTESTINAL DISORDER.docx
Open folder Downloads.pdf yes yes ges yes
From loneliness to social connection charting
human mycosis Human fungal infections are called human mycosis..pptx
Pharmacology of Heart Failure /Pharmacotherapy of CHF
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
STATICS OF THE RIGID BODIES Hibbelers.pdf
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Introduction and Scope of Bichemistry.pptx
O5-L3 Freight Transport Ops (International) V1.pdf
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
Renaissance Architecture: A Journey from Faith to Humanism
Cardiovascular Pharmacology for pharmacy students.pptx
Piense y hagase Rico - Napoleon Hill Ccesa007.pdf
The Final Stretch: How to Release a Game and Not Die in the Process.
Mark Klimek Lecture Notes_240423 revision books _173037.pdf
Onica Farming 24rsclub profitable farm business
Business Ethics Teaching Materials for college

Queue AS an ADT (Abstract Data Type)

  • 3. Intro • Queue is a linear list of elements in which deletion of an element can take place at one end, called the front and insertion can take place at the other end, called the rear. • The first element in a queue will be the first one to be removed from the list. • Queues are also called FIFO (First In First Out) i.e. the data item stored first will be accessed first 3
  • 4. Queue Representation • In queue, we access both ends for different reasons 4
  • 5. Applications of queue • Serving requests on a single shared resource, like a printer, CPU task scheduling etc. • In real life, Call Center phone systems will use Queues, to hold people calling them in an order, until a service representative is free. • Handling of interrupts in real-time systems. The interrupts are handled in the same order as they arrive, First come first served. 5
  • 6. The queue as an ADT • A queue q of type T is a finite sequence of elements with the operations • MakeEmpty(q): To make q as an empty queue • IsEmpty(q): To check whether the queue q is empty. Return true if q is empty, return false otherwise. • IsFull(q): To check whether the queue q is full. Return true in q is full, return false otherwise. • Enqueue(q, x): To insert an item x at the rear of the queue, if and only if q is not full. • Dequeue(q): To delete an item from the front of the queue q if and only if q is not empty. • Traverse (q): To read entire queue that is display the content of the queue. 6
  • 7. Enqueue Operation • Queue maintains two data pointers, front and rear • The following steps should be taken to enqueue(insert) data into queue – • Step 1 – Check if queue is full • Step 2 – if queue is full produce overflow error and exit else increment rear pointer to point next empty space and add data element to the queue location, where rear is pointing • Step 3 - return success 7
  • 8. 8
  • 9. Implementation of enqueue() int enqueue(int data) { if(isfull()) return 0; rear = rear + 1; queue[rear] = data; return 1; } 9
  • 10. Dequeue Operation • Accessing data from queue is a process of two steps • Access the data from where front is pointing • And remove the data after access • The following steps are taken to perform dequeue operation • Step 1 – Check if queue is empty • Step 2 – if queue is empty produce underflow error and exit else access data where front is pointing, increment front pointer to point next available data element • Step 3 – return success. 10
  • 11. 11
  • 12. Implementation of dequeue() int dequeue() { if(isempty()) { return 0; } int data = queue[front]; front = front + 1; return data; } 12
  • 13. Implementation of queue • There are two techniques for implementing the queue: • Array implementation of queue (static memory allocation) • Linear array implementation (Linear Queue) • Circular array Implementation (Circular queue) • Linked list implementation of queue (dynamic memory allocation) 13
  • 14. Array implementation of queue • The easies way of implementing a queue is by using an Array. • Initially head(FRONT) and the tail(REAR) of the queue points at the first index of the array. • As we add elements to the queue, we can either move tail before adding another item or we can move the tail after adding the item, while the head remains at the first index. 14
  • 16. Linear Queue Insertion of an item in queue Deletion of an item from queue 1. Initialize front=0 and rear=-1 if rear>=MAXSIZE-1 print “queue overflow” and return else set rear=rear+1 queue[rear]=item 2. end 1. if rear<front print “queue is empty” and return else item=queue[front++] 2. end 16
  • 17. Problems with Linear queue implementation • Both rear and front indices are increased but never decreased. • As items are removed from the queue, the storage space at the beginning of the array is discarded and never used again. • Wastage of the space is the main problem with linear queue which is illustrated by the following example. 17
  • 18. Circular queue • A queue where the start and end of the queue are joined together. • A circular queue is one in which the insertion of a new element is done at very first location of the queue if the last location of the queue is full. 18
  • 19. 19
  • 20. Circular queue isFull() IsEmpty - If HEAD == (Tail % MAX) + 1 Then Full <- True; Else Full <- False; - If they have caught up to each other, then it’s full - If Head ==Tail Then Full <- True; Else Full <- False; 20
  • 21. Circular queue Enqueue operation Dequeue operation Step 1. start Step 2. if (front == (rear+1)%max) Print error “circular queue overflow “ Step 3. else{ rear = (rear+1)%max Q[rear] = element; } Step 4. stop Step 1. start Step 2. if isEmpty() == True Print error “Queue is Empty“ Step 3. else{ element = Q[front] front = (front + 1) % max } Step 4. stop 21
  • 22. References • https://www.cs.cmu.edu/~adamchik/15-121/lectures/Stacks%20and%20Queues/Stacks%20and%20Queu • http://www.tutorialspoint.com/data_structures_algorithms/dsa_queue.htm • http://www.studytonight.com/data-structures/queue-data-structure • https://www.youtube.com/watch?v=g9su-lnW2Ks • https://www.youtube.com/watch?v=ia__kyuwGag • https://www.quora.com/What-is-a-circular-queue • http://basicdatastructures.blogspot.com/2007/12/circular-queue-data-structure.html • http://btechsmartclass.com/DS/U2_T10.html • http://scanftree.com/Data_Structure/circular-queue • http://btechsmartclass.com/DS/U2_T10.html 22