Skip to content

Commit b4117d8

Browse files
authored
Update skew_heap.py
1 parent a24fd46 commit b4117d8

File tree

1 file changed

+25
-28
lines changed

1 file changed

+25
-28
lines changed

data_structures/heap/skew_heap.py

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#!/usr/bin/env python3
22

3-
43
from __future__ import annotations
54

65
from collections.abc import Iterable, Iterator
@@ -62,37 +61,35 @@ def value(self) -> T:
6261
"""
6362
return self._value
6463

64+
@staticmethod
65+
def merge(root1: SkewNode[T] | None, root2: SkewNode[T] | None) -> SkewNode[T] | None:
66+
"""
67+
Merge 2 nodes together.
68+
>>> SkewNode.merge(SkewNode(10),SkewNode(-10.5)).value
69+
-10.5
70+
>>> SkewNode.merge(SkewNode(10),SkewNode(10.5)).value
71+
10
72+
>>> SkewNode.merge(SkewNode(10),SkewNode(10)).value
73+
10
74+
>>> SkewNode.merge(SkewNode(-100),SkewNode(-10.5)).value
75+
-100
76+
"""
77+
if not root1:
78+
return root2
6579

66-
@staticmethod
67-
def merge(root1: SkewNode[T] | None, root2: SkewNode[T] | None) -> SkewNode[T] | None:
68-
"""
69-
Merge 2 nodes together.
70-
>>> SkewNode.merge(SkewNode(10),SkewNode(-10.5)).value
71-
-10.5
72-
>>> SkewNode.merge(SkewNode(10),SkewNode(10.5)).value
73-
10
74-
>>> SkewNode.merge(SkewNode(10),SkewNode(10)).value
75-
10
76-
>>> SkewNode.merge(SkewNode(-100),SkewNode(-10.5)).value
77-
-100
78-
"""
79-
if not root1:
80-
return root2
81-
82-
if not root2:
83-
return root1
84-
85-
# Use explicit __lt__ method for type safety
86-
if root1.value > root2.value:
87-
root1, root2 = root2, root1
80+
if not root2:
81+
return root1
8882

89-
result = root1
90-
temp = root1.right
91-
result.right = root1.left
92-
result.left = SkewNode.merge(temp, root2)
83+
# Use explicit __lt__ method for type safety
84+
if root1.value > root2.value:
85+
root1, root2 = root2, root1
9386

94-
return result
87+
result = root1
88+
temp = root1.right
89+
result.right = root1.left
90+
result.left = SkewNode.merge(temp, root2)
9591

92+
return result
9693

9794
class SkewHeap[T]:
9895
"""

0 commit comments

Comments
 (0)