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

Method merge

data_structures/heap/skew_heap.py:59–87  ·  view source on GitHub ↗

Merge 2 nodes together. >>> SkewNode.merge(SkewNode(10),SkewNode(-10.5)).value -10.5 >>> SkewNode.merge(SkewNode(10),SkewNode(10.5)).value 10 >>> SkewNode.merge(SkewNode(10),SkewNode(10)).value 10 >>> SkewNode.merge(SkewNode(-100),Skew

(
        root1: SkewNode[T] | None, root2: SkewNode[T] | None
    )

Source from the content-addressed store, hash-verified

57
58 @staticmethod
59 def merge(
60 root1: SkewNode[T] | None, root2: SkewNode[T] | None
61 ) -> SkewNode[T] | None:
62 """
63 Merge 2 nodes together.
64 >>> SkewNode.merge(SkewNode(10),SkewNode(-10.5)).value
65 -10.5
66 >>> SkewNode.merge(SkewNode(10),SkewNode(10.5)).value
67 10
68 >>> SkewNode.merge(SkewNode(10),SkewNode(10)).value
69 10
70 >>> SkewNode.merge(SkewNode(-100),SkewNode(-10.5)).value
71 -100
72 """
73 if not root1:
74 return root2
75
76 if not root2:
77 return root1
78
79 if root1.value > root2.value:
80 root1, root2 = root2, root1
81
82 result = root1
83 temp = root1.right
84 result.right = root1.left
85 result.left = SkewNode.merge(temp, root2)
86
87 return result
88
89
90class SkewHeap[T: bool]:

Callers 2

insertMethod · 0.45
popMethod · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected