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

Class SkewNode

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

One node of the skew heap. Contains the value and references to two children.

Source from the content-addressed store, hash-verified

9
10
11class SkewNode[T: bool]:
12 """
13 One node of the skew heap. Contains the value and references to
14 two children.
15 """
16
17 def __init__(self, value: T) -> None:
18 self._value: T = value
19 self.left: SkewNode[T] | None = None
20 self.right: SkewNode[T] | None = None
21
22 @property
23 def value(self) -> T:
24 """
25 Return the value of the node.
26
27 >>> SkewNode(0).value
28 0
29 >>> SkewNode(3.14159).value
30 3.14159
31 >>> SkewNode("hello").value
32 'hello'
33 >>> SkewNode(None).value
34
35 >>> SkewNode(True).value
36 True
37 >>> SkewNode([]).value
38 []
39 >>> SkewNode({}).value
40 {}
41 >>> SkewNode(set()).value
42 set()
43 >>> SkewNode(0.0).value
44 0.0
45 >>> SkewNode(-1e-10).value
46 -1e-10
47 >>> SkewNode(10).value
48 10
49 >>> SkewNode(-10.5).value
50 -10.5
51 >>> SkewNode().value
52 Traceback (most recent call last):
53 ...
54 TypeError: SkewNode.__init__() missing 1 required positional argument: 'value'
55 """
56 return self._value
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

Callers 1

insertMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected