- Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathtest.py
78 lines (60 loc) · 1.85 KB
/
test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
classNumber:
def__init__(self, n):
self._n=n
def__add__(self, other):
returnNumber(self._n+other.getN())
defgetN(self):
returnself._n
n1=Number(3)
n2=Number(5)
n3=Number(6)
n4=Number(9)
n5=n1.__add__(n2).__add__(n3).__add__(n4)
print(n5.getN())
#########################################################
classTreeNode:
def__init__(self, value):
self.value=value
self.left=None
self.right=None
classBinaryTree:
def__init__(self):
self.root=None
definsert(self, value):
ifself.root==None:
self.root=TreeNode(value)
else:
self._insert_recursive(self.root, value)
def_insert_recursive(self, current_node, value):
ifvalue<current_node.value:
ifcurrent_node.left==None:
current_node.left=TreeNode(value)
else:
self._insert_recursive(current_node.left, value)
elifvalue>current_node.value:
ifcurrent_node.right==None:
current_node.right=TreeNode(value)
else:
self._insert_recursive(current_node.right, value)
definorder_traversal(self, node):
ifnode==None:
node=self.root
ifnode.left:
self.inorder_traversal(node.left)
print(node.value)
ifnode.right:
self.inorder_traversal(node.right)
defmain():
tree=BinaryTree()
# Insert values into the binary tree
tree.insert(5)
tree.insert(3)
tree.insert(8)
tree.insert(2)
tree.insert(4)
tree.insert(7)
tree.insert(9)
# Perform inorder traversal by printing values
print("Inorder traversal:")
tree.inorder_traversal(None) # Prints values in ascending order
main()