Priority Queue in DSA Python

Program 1

# Implementation of Priority Queue using Module Min Heap
import queue
import os
class MyPQueue:
    def __init__(self):
        self.pq=queue.PriorityQueue()

    def insert(self):
        n=int(input("Enter an element: "))        
        self.pq.put(n)

    def delete(self):
        if(self.pq.empty()):
            print("Priorty queue is empty")
        else:
            print("Deleted element is: ",self.pq.get())

    def display(self):
        if(self.pq.empty()):
            print("Priorty queue is empty")
        else:
            print("Elements of Priorit Queue: ")            
            print(sorted(self.pq.queue))

# Main
os.system('cls')
mpq=MyPQueue()
while(1):
    print("-----------------------------Priority Queue--------------------------")
    print("1. Insert \n 2. Delete \n 3 Display \n 4. Exit")
    print("-----------------------------------------------------------------------")
    choice=int(input("Enter your choice: "))
    if(choice==1):
        mpq.insert()
    elif(choice==2):
        mpq.delete()
    elif(choice==3):
        mpq.display()            
    else:
        break

Program 2

# Implementation of Priority Queue using Module Max Heap
import queue
pq = queue.PriorityQueue()

def qinsert():
    n = int(input("Enter element for insert: "))
    pq.put(-n)  # Store negative for max-heap

def qdelete():
    if pq.empty():
        print("Priority Queue is empty")
    else:
        print("Deleted element is:", -pq.get())  # Convert back to positive

def qdisplay():
    if pq.empty():
        print("Priority Queue is empty")
    else:
        print("Priority Queue (sorted by largest first):", sorted([-x for x in pq.queue], reverse=True))

while True:
    print("\n--- Priority Queue Menu (Max-Heap) ---")
    print("1. Insert\n2. Delete\n3. Display\n4. Exit")
    choice = int(input("Enter your choice: "))
    
    if choice == 1:
        qinsert()
    elif choice == 2:
        qdelete()
    elif choice == 3:
        qdisplay()
    elif choice == 4:
        break
    else:
        print("Invalid choice")

 

courses

DataFlair Team

DataFlair Team provides high-impact content on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. We make complex concepts easy to grasp, helping learners of all levels succeed in their tech careers.

Leave a Reply

Your email address will not be published. Required fields are marked *