1+ import logging
2+
13class Node :
24 def __init__ (self , value ):
35 self .left = None
@@ -9,43 +11,59 @@ def __init__(self):
911 self .root = None
1012
1113 def insert (self , value ):
12- new_node = Node (value )
13- if self .root is None :
14- self .root = new_node
15- else :
16- current_node = self .root
17- while True :
18- if value < current_node .value :
19- if current_node .left is None :
20- current_node .left = new_node
21- break
22- else :
23- current_node = current_node .left
24- else :
25- if current_node .right is None :
26- current_node .right = new_node
27- break
14+ try :
15+ new_node = Node (value )
16+ if self .root is None :
17+ self .root = new_node
18+ else :
19+ current_node = self .root
20+ while True :
21+ if value < current_node .value :
22+ if current_node .left is None :
23+ current_node .left = new_node
24+ break
25+ else :
26+ current_node = current_node .left
2827 else :
29- current_node = current_node .right
28+ if current_node .right is None :
29+ current_node .right = new_node
30+ break
31+ else :
32+ current_node = current_node .right
33+ except Exception as e :
34+ logging .error (f"Error in insert: { e } " )
35+ return "An error occurred during insert in binary search tree: {}" .format (str (e ))
3036
3137 def search (self , value ):
32- current_node = self .root
33- while current_node is not None :
34- if value == current_node .value :
35- return True
36- elif value < current_node .value :
37- current_node = current_node .left
38- else :
39- current_node = current_node .right
40- return False
38+ try :
39+ current_node = self .root
40+ while current_node is not None :
41+ if value == current_node .value :
42+ return True
43+ elif value < current_node .value :
44+ current_node = current_node .left
45+ else :
46+ current_node = current_node .right
47+ return False
48+ except Exception as e :
49+ logging .error (f"Error in search: { e } " )
50+ return "An error occurred during search in binary search tree: {}" .format (str (e ))
4151
4252 def in_order_traversal (self , node , result ):
43- if node is not None :
44- self .in_order_traversal (node .left , result )
45- result .append (node .value )
46- self .in_order_traversal (node .right , result )
53+ try :
54+ if node is not None :
55+ self .in_order_traversal (node .left , result )
56+ result .append (node .value )
57+ self .in_order_traversal (node .right , result )
58+ except Exception as e :
59+ logging .error (f"Error in in_order_traversal: { e } " )
60+ return "An error occurred during in order traversal in binary search tree: {}" .format (str (e ))
4761
4862 def get_in_order_traversal (self ):
49- result = []
50- self .in_order_traversal (self .root , result )
51- return result
63+ try :
64+ result = []
65+ self .in_order_traversal (self .root , result )
66+ return result
67+ except Exception as e :
68+ logging .error (f"Error in get_in_order_traversal: { e } " )
69+ return "An error occurred during in order traversal in binary search tree: {}" .format (str (e ))
0 commit comments