Skip to content

Commit fb52962

Browse files
Suyashd999cclauss
authored andcommitted
Added doctest to binary_search_tree.py (TheAlgorithms#11145)
* Added doctest to binary_search_tree.py * Apply suggestions from code review --------- Co-authored-by: Christian Clauss <cclauss@me.com>
1 parent 3773233 commit fb52962

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

data_structures/binary_tree/binary_search_tree.py

+42
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,30 @@ def insert(self, *values) -> Self:
198198
return self
199199

200200
def search(self, value) -> Node | None:
201+
"""
202+
>>> tree = BinarySearchTree().insert(10, 20, 30, 40, 50)
203+
>>> tree.search(10)
204+
{'10': (None, {'20': (None, {'30': (None, {'40': (None, 50)})})})}
205+
>>> tree.search(20)
206+
{'20': (None, {'30': (None, {'40': (None, 50)})})}
207+
>>> tree.search(30)
208+
{'30': (None, {'40': (None, 50)})}
209+
>>> tree.search(40)
210+
{'40': (None, 50)}
211+
>>> tree.search(50)
212+
50
213+
>>> tree.search(5) is None # element not present
214+
True
215+
>>> tree.search(0) is None # element not present
216+
True
217+
>>> tree.search(-5) is None # element not present
218+
True
219+
>>> BinarySearchTree().search(10)
220+
Traceback (most recent call last):
221+
...
222+
IndexError: Warning: Tree is empty! please use another.
223+
"""
224+
201225
if self.empty():
202226
raise IndexError("Warning: Tree is empty! please use another.")
203227
else:
@@ -210,6 +234,15 @@ def search(self, value) -> Node | None:
210234
def get_max(self, node: Node | None = None) -> Node | None:
211235
"""
212236
We go deep on the right branch
237+
238+
>>> BinarySearchTree().insert(10, 20, 30, 40, 50).get_max()
239+
50
240+
>>> BinarySearchTree().insert(-5, -1, 0.1, -0.3, -4.5).get_max()
241+
{'0.1': (-0.3, None)}
242+
>>> BinarySearchTree().insert(1, 78.3, 30, 74.0, 1).get_max()
243+
{'78.3': ({'30': (1, 74.0)}, None)}
244+
>>> BinarySearchTree().insert(1, 783, 30, 740, 1).get_max()
245+
{'783': ({'30': (1, 740)}, None)}
213246
"""
214247
if node is None:
215248
if self.root is None:
@@ -224,6 +257,15 @@ def get_max(self, node: Node | None = None) -> Node | None:
224257
def get_min(self, node: Node | None = None) -> Node | None:
225258
"""
226259
We go deep on the left branch
260+
261+
>>> BinarySearchTree().insert(10, 20, 30, 40, 50).get_min()
262+
{'10': (None, {'20': (None, {'30': (None, {'40': (None, 50)})})})}
263+
>>> BinarySearchTree().insert(-5, -1, 0, -0.3, -4.5).get_min()
264+
{'-5': (None, {'-1': (-4.5, {'0': (-0.3, None)})})}
265+
>>> BinarySearchTree().insert(1, 78.3, 30, 74.0, 1).get_min()
266+
{'1': (None, {'78.3': ({'30': (1, 74.0)}, None)})}
267+
>>> BinarySearchTree().insert(1, 783, 30, 740, 1).get_min()
268+
{'1': (None, {'783': ({'30': (1, 740)}, None)})}
227269
"""
228270
if node is None:
229271
node = self.root

0 commit comments

Comments
 (0)