Skip to content

Commit b2df7cd

Browse files
authored
Update fibonacci_heap.py
1 parent 0a897c3 commit b2df7cd

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

data_structures/heap/fibonacci_heap.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ class FibonacciTree:
1515

1616
def __init__(self, key: int) -> None:
1717
self.key = key
18-
self.children: list["FibonacciTree"] = []
18+
self.children: list['FibonacciTree'] = []
1919
self.order = 0
2020

21-
def add_at_end(self, child_node: "FibonacciTree") -> None:
21+
def add_at_end(self, child_node: 'FibonacciTree') -> None:
2222
"""
2323
Adds a child node 'child_node' to the end of the children list.
2424
@@ -53,8 +53,8 @@ class FibonacciHeap:
5353
"""
5454

5555
def __init__(self) -> None:
56-
self.trees: list["FibonacciTree"] = []
57-
self.least: "FibonacciTree" | None = None
56+
self.trees: list['FibonacciTree'] = []
57+
self.least: 'FibonacciTree' | None = None
5858
self.count = 0
5959

6060
def insert(self, key: int) -> None:
@@ -66,7 +66,7 @@ def insert(self, key: int) -> None:
6666
"""
6767
new_tree = FibonacciTree(key)
6868
self.trees.append(new_tree)
69-
if self.least is None or key < self.least.key:
69+
if (self.least is None or key < self.least.key):
7070
self.least = new_tree
7171
self.count = self.count + 1
7272

@@ -88,7 +88,8 @@ def extract_min(self) -> int | None:
8888
Returns:
8989
int: The minimum key.
9090
"""
91-
if (smallest := self.least) is not None:
91+
smallest = self.least
92+
if smallest is not None:
9293
for child in smallest.children:
9394
if child is not None:
9495
self.trees.append(child)
@@ -110,6 +111,9 @@ def consolidate(self) -> None:
110111

111112
while self.trees:
112113
x = self.trees[0]
114+
if x is None:
115+
self.trees.pop(0) # Remove the None value
116+
continue # Skip processing None values
113117
order = x.order
114118
self.trees.remove(x)
115119
while aux[order] is not None:
@@ -125,10 +129,9 @@ def consolidate(self) -> None:
125129
for k in aux:
126130
if k is not None:
127131
self.trees.append(k)
128-
if self.least is None or k.key < self.least.key:
132+
if (self.least is None or k.key < self.least.key):
129133
self.least = k
130-
131-
134+
132135
def floor_log2(x: int) -> int:
133136
"""
134137
Computes the floor of the base-2 logarithm of 'x'.
@@ -141,14 +144,11 @@ def floor_log2(x: int) -> int:
141144
"""
142145
return math.floor(math.log2(x)) if x > 0 else 0
143146

144-
145147
# Doctest for floor_log2
146148
if __name__ == "__main__":
147149
import doctest
148-
149150
doctest.testmod()
150151

151152
if __name__ == "__main__":
152153
import doctest
153-
154154
doctest.testmod()

0 commit comments

Comments
 (0)