MCPcopy Index your code
hub / github.com/TheAlgorithms/Python / PriorityQueue

Class PriorityQueue

graphs/dijkstra_algorithm.py:11–210  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9
10
11class PriorityQueue:
12 # Based on Min Heap
13 def __init__(self):
14 """
15 Priority queue class constructor method.
16
17 Examples:
18 >>> priority_queue_test = PriorityQueue()
19 >>> priority_queue_test.cur_size
20 0
21 >>> priority_queue_test.array
22 []
23 >>> priority_queue_test.pos
24 {}
25 """
26 self.cur_size = 0
27 self.array = []
28 self.pos = {} # To store the pos of node in array
29
30 def is_empty(self):
31 """
32 Conditional boolean method to determine if the priority queue is empty or not.
33
34 Examples:
35 >>> priority_queue_test = PriorityQueue()
36 >>> priority_queue_test.is_empty()
37 True
38 >>> priority_queue_test.insert((2, 'A'))
39 >>> priority_queue_test.is_empty()
40 False
41 """
42 return self.cur_size == 0
43
44 def min_heapify(self, idx):
45 """
46 Sorts the queue array so that the minimum element is root.
47
48 Examples:
49 >>> priority_queue_test = PriorityQueue()
50 >>> priority_queue_test.cur_size = 3
51 >>> priority_queue_test.pos = {'A': 0, 'B': 1, 'C': 2}
52
53 >>> priority_queue_test.array = [(5, 'A'), (10, 'B'), (15, 'C')]
54 >>> priority_queue_test.min_heapify(0)
55 >>> priority_queue_test.array
56 [(5, 'A'), (10, 'B'), (15, 'C')]
57
58 >>> priority_queue_test.array = [(10, 'A'), (5, 'B'), (15, 'C')]
59 >>> priority_queue_test.min_heapify(0)
60 >>> priority_queue_test.array
61 [(5, 'B'), (10, 'A'), (15, 'C')]
62
63 >>> priority_queue_test.array = [(10, 'A'), (15, 'B'), (5, 'C')]
64 >>> priority_queue_test.min_heapify(0)
65 >>> priority_queue_test.array
66 [(5, 'C'), (15, 'B'), (10, 'A')]
67
68 >>> priority_queue_test.array = [(10, 'A'), (5, 'B')]

Callers 2

dijkstraMethod · 0.70
bidirectional_dijFunction · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected