Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bdceb33

Browse files
logging in trees
1 parent 16c14a3 commit bdceb33

File tree

1 file changed

+51
-33
lines changed

1 file changed

+51
-33
lines changed
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)

AltStyle によって変換されたページ (->オリジナル) /