@@ -52,45 +52,33 @@ def min_heapify(self, idx):
52
52
53
53
>>> priority_queue_test.array = [(5, 'A'), (10, 'B'), (15, 'C')]
54
54
>>> priority_queue_test.min_heapify(0)
55
- Traceback (most recent call last):
56
- ...
57
- TypeError: 'list' object is not callable
58
55
>>> priority_queue_test.array
59
56
[(5, 'A'), (10, 'B'), (15, 'C')]
60
57
61
58
>>> priority_queue_test.array = [(10, 'A'), (5, 'B'), (15, 'C')]
62
59
>>> priority_queue_test.min_heapify(0)
63
- Traceback (most recent call last):
64
- ...
65
- TypeError: 'list' object is not callable
66
60
>>> priority_queue_test.array
67
- [(10 , 'A '), (5 , 'B '), (15, 'C')]
61
+ [(5 , 'B '), (10 , 'A '), (15, 'C')]
68
62
69
63
>>> priority_queue_test.array = [(10, 'A'), (15, 'B'), (5, 'C')]
70
64
>>> priority_queue_test.min_heapify(0)
71
- Traceback (most recent call last):
72
- ...
73
- TypeError: 'list' object is not callable
74
65
>>> priority_queue_test.array
75
- [(10 , 'A '), (15, 'B'), (5 , 'C ')]
66
+ [(5 , 'C '), (15, 'B'), (10 , 'A ')]
76
67
77
68
>>> priority_queue_test.array = [(10, 'A'), (5, 'B')]
78
69
>>> priority_queue_test.cur_size = len(priority_queue_test.array)
79
70
>>> priority_queue_test.pos = {'A': 0, 'B': 1}
80
71
>>> priority_queue_test.min_heapify(0)
81
- Traceback (most recent call last):
82
- ...
83
- TypeError: 'list' object is not callable
84
72
>>> priority_queue_test.array
85
- [(10 , 'A '), (5 , 'B ')]
73
+ [(5 , 'B '), (10 , 'A ')]
86
74
"""
87
75
lc = self .left (idx )
88
76
rc = self .right (idx )
89
- if lc < self .cur_size and self .array ( lc ) [0 ] < self .array [idx ][0 ]:
77
+ if lc < self .cur_size and self .array [ lc ] [0 ] < self .array [idx ][0 ]:
90
78
smallest = lc
91
79
else :
92
80
smallest = idx
93
- if rc < self .cur_size and self .array ( rc ) [0 ] < self .array [smallest ][0 ]:
81
+ if rc < self .cur_size and self .array [ rc ] [0 ] < self .array [smallest ][0 ]:
94
82
smallest = rc
95
83
if smallest != idx :
96
84
self .swap (idx , smallest )
@@ -130,12 +118,12 @@ def extract_min(self):
130
118
>>> priority_queue_test.extract_min()
131
119
'C'
132
120
>>> priority_queue_test.array[0]
133
- (15 , 'B ')
121
+ (10 , 'A ')
134
122
"""
135
123
min_node = self .array [0 ][1 ]
136
124
self .array [0 ] = self .array [self .cur_size - 1 ]
137
125
self .cur_size -= 1
138
- self .min_heapify (1 )
126
+ self .min_heapify (0 )
139
127
del self .pos [min_node ]
140
128
return min_node
141
129
0 commit comments