@@ -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