Skip to content

Commit 1e50cf3

Browse files
Suyashd999cclauss
andauthored
Added doctest to binary_search_tree.py (TheAlgorithms#11141)
* Added doctest to binary_search_tree.py * Update binary_search_tree.py * Update binary_search_tree.py --------- Co-authored-by: Christian Clauss <[email protected]>
1 parent 257cfbd commit 1e50cf3

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

data_structures/binary_tree/binary_search_tree.py

+26-6
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010
/ \ /
1111
4 7 13
1212
13-
>>> t = BinarySearchTree()
14-
>>> t.insert(8, 3, 6, 1, 10, 14, 13, 4, 7)
13+
>>> t = BinarySearchTree().insert(8, 3, 6, 1, 10, 14, 13, 4, 7)
1514
>>> print(" ".join(repr(i.value) for i in t.traversal_tree()))
1615
8 3 1 6 4 7 10 14 13
1716
@@ -40,7 +39,16 @@
4039
>>> testlist = (8, 3, 6, 1, 10, 14, 13, 4, 7)
4140
>>> t = BinarySearchTree()
4241
>>> for i in testlist:
43-
... t.insert(i)
42+
... t.insert(i) # doctest: +ELLIPSIS
43+
BinarySearchTree(root=8)
44+
BinarySearchTree(root={'8': (3, None)})
45+
BinarySearchTree(root={'8': ({'3': (None, 6)}, None)})
46+
BinarySearchTree(root={'8': ({'3': (1, 6)}, None)})
47+
BinarySearchTree(root={'8': ({'3': (1, 6)}, 10)})
48+
BinarySearchTree(root={'8': ({'3': (1, 6)}, {'10': (None, 14)})})
49+
BinarySearchTree(root={'8': ({'3': (1, 6)}, {'10': (None, {'14': (13, None)})})})
50+
BinarySearchTree(root={'8': ({'3': (1, {'6': (4, None)})}, {'10': (None, {'14': ...
51+
BinarySearchTree(root={'8': ({'3': (1, {'6': (4, 7)})}, {'10': (None, {'14': (13, ...
4452
4553
Prints all the elements of the list in order traversal
4654
>>> print(t)
@@ -84,7 +92,7 @@
8492

8593
from collections.abc import Iterable, Iterator
8694
from dataclasses import dataclass
87-
from typing import Any
95+
from typing import Any, Self
8896

8997

9098
@dataclass
@@ -145,7 +153,18 @@ def __reassign_nodes(self, node: Node, new_children: Node | None) -> None:
145153
self.root = new_children
146154

147155
def empty(self) -> bool:
148-
return self.root is None
156+
"""
157+
Returns True if the tree does not have any element(s).
158+
False if the tree has element(s).
159+
160+
>>> BinarySearchTree().empty()
161+
True
162+
>>> BinarySearchTree().insert(1).empty()
163+
False
164+
>>> BinarySearchTree().insert(8, 3, 6, 1, 10, 14, 13, 4, 7).empty()
165+
False
166+
"""
167+
return not self.root
149168

150169
def __insert(self, value) -> None:
151170
"""
@@ -173,9 +192,10 @@ def __insert(self, value) -> None:
173192
parent_node = parent_node.right
174193
new_node.parent = parent_node
175194

176-
def insert(self, *values) -> None:
195+
def insert(self, *values) -> Self:
177196
for value in values:
178197
self.__insert(value)
198+
return self
179199

180200
def search(self, value) -> Node | None:
181201
if self.empty():

0 commit comments

Comments
 (0)