Skip to content

Commit bdceb33

Browse files
committed
logging in trees
1 parent 16c14a3 commit bdceb33

1 file changed

Lines changed: 51 additions & 33 deletions

File tree

Lines changed: 51 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import logging
2+
13
class 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

Comments
 (0)