1  ### priorityQueueModule ###
2  class priorityQueue:
3      class priorityElement:
4           def __init__(self, item, priority):
5              self.item = item
6              self.priority = priority
7      #-------------------------------
8      def __init__(self):
9          self.qList = list()
10     #-------------------------------
11     def isEmpty(self):
12         return len(self.qList) == 0
13     #--------------------------------
14     def length(self):
15         return len(self.qList)
16     #--------------------------------
17     def enqueue(self, item, priority):
18         entry = self.priorityElement(item, priority)
19         self.qList.append(entry)
20     #----------------------------------
21     def dequeue(self, underflow):
22         if self.isEmpty():
23             underflow = True
24         else:
25             ubderflow = False
24             highest = self.qList[0].priority
25             hindex = 0 
26             for i in range(len(self.qList)):
27                 if self.qList[i].priority < highest:
28                     highest = self.qList[i].priority
29                     hindex = i
30             entry = self.qList.pop(hindex)
31         return entry, underflow
32     #---------------------------------
33     def printQueue(self):
34         print("Item      Priority")
35         for i in range(len(self.qList)):
36             print(self.qList[i].item, "\t\t", self.qList[i].priority)
37     #----------------------------------
