1
+ import logging
2
+
1
3
class Node :
2
4
def __init__ (self , value ):
3
5
self .left = None
@@ -9,43 +11,59 @@ def __init__(self):
9
11
self .root = None
10
12
11
13
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
28
27
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 ))
30
36
31
37
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 ))
41
51
42
52
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 ))
47
61
48
62
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