Professional Documents
Culture Documents
insertion in descending
order and normal
deletion
Roll no 19 - Tanusha Hande
Roll no 30 – Vishakha Korade
Agenda
DSA
Theory
Algorithm
Program
Applications
Conclusion
Presentation title 2
Theory
A priority queue is a special type of queue in which each element is associated
with a priority value. And, elements are served on the basis of their priority. That is,
higher priority elements are served first.
Priority Queue is an abstract data type that is similar to a queue, and every
element has some priority value associated with it. The priority of the elements in
a priority queue determines the order in which elements are served (i.e., the order
in which they are removed). If in any case the elements have same priority, they
are served as per their ordering in the queue
Presentation title 3
Properties of Priority Queue
If two elements have the same priority, they are served according to
their order in the queue.
Presentation title 4
• Time Complexity
Enqueue () Dequeue () Peek ()
• Space Complexity
O(n)
Presentation title 5
Types Of Priority Queue
1) Ascending Order Priority Queue
As the name suggests, in ascending order priority queue, the element with a lower
priority value is given a higher priority in the priority list. For example, if we have the
following elements in a priority queue arranged in ascending order like 4,6,8,9,10.
Here, 4 is the smallest number, therefore, it will get the highest priority in a priority
queue and so when we dequeue from this type of priority queue, 4 will remove from the
queue and dequeue returns 4.
Presentation title 7
Difference between Priority Queue
and Normal Queue?
There is no priority attached to elements
in a queue, the rule of first-in-first-
out(FIFO) is implemented whereas, in a
priority queue, the elements have a
priority. The elements with higher priority
are served first.
8
Algorithm
FunctionQInsert_descending order
(Queue , Front , Rear , MAX ,Data , i , j)
//At first create a Queue with
1. Front = Rear = -1
// checking overflow condition
2. if Rear >=MAX-1
write (“Queue is full/overflow”);
Return;
3. If Front = Rear = -1
then Front = Front + 1, Rear = Rear + 1;
4. Queue [Rear] = data ;
Return;
Presentation title 10
Function Qcheck_data
(Queue , i , data , j)
1. Declare I , j;
2. for (i=0; i<=Rear ; i++)
if (data >= queue[i] )
for (j= Rear +1 ; j>1 ; j--)
if (Queue [j] = Queue [j-1])
then
Queue [i] = data ;
Presentation title 11
Function Q delete_normal
(Front , Rear , I , Queue , data )
// check queue is empty or not
1. Front := Rear := -1
write (“Queue is empty / Underflow “);
return ;
2. for (i=0; i< Rear ; i++)
if (data == Queue [i+1] )
then
Queue [i] = -99
3. Rear = Rear – 1;
4. if Rear = Front = -1
write (“ element not found “);
return ;
Presentation title 12
Function Queue Display_normal
(Front , Rear , Queue , Data )
1. if Front = Rear = -1
write (“Queue is empty / Underflow “);
return ;
2. for (Front = 0; Front <= Rear ; Front++)
Data = Queue[Front]
3. return ;
Presentation title 13
PROGRAM
Presentation title 15
Presentation title 16
Presentation title 17
Presentation title 18
Implementation of Priority Queue Using Arrays
• A simple implementation is to use an array of the following structure.
• struct item {
int item;
int priority;
}
enqueue(): This function is used to insert new data into the queue.
dequeue(): This function removes the element with the highest priority from the queue.
peek()/top(): This function is used to get the highest priority element in the queue without
removing it from the queue.
Presentation title 20
APPLICATIONS
CPU Scheduling
Graph algorithms like Dijkstra’s shortest path algorithm, Prim’s Minimum Spanning
Tree ,etc.
Stack Implementation
Presentation title 22
THANK YOU !!!