-
Notifications
You must be signed in to change notification settings - Fork 0
/
Binary_tree.py
57 lines (50 loc) · 1.54 KB
/
Binary_tree.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
class Node(object):
def __init__(self):
self.leftside = None
self.rightside = None
self.data = None
class Tree(object):
def __init__(self):
self.root = Node()
def insert(self, data:int):
new_node = Node()
new_node.data = data
if self.root.data == None:
self.root = new_node
return
placeholder = self.root
last_node = None
while(placeholder != None):
last_node = placeholder
if(data > placeholder.data):
placeholder = placeholder.rightside
print('go right')
elif(data < placeholder.data):
placeholder = placeholder.leftside
print('go left')
if last_node.data > new_node.data:
last_node.leftside = new_node
elif last_node.data < new_node.data:
last_node.rightside = new_node
print('added new node')
def inorder_printout(self):
placeholder = self.root
self.inorder_traversal_helper(placeholder)
def inorder_traversal_helper(self, Node):
if Node == None:
return
else:
self.inorder_traversal_helper(Node.leftside)
print('Data:', Node.data)
self.inorder_traversal_helper(Node.rightside)
if __name__ == "__main__":
tree = Tree()
tree.insert(15)
tree.insert(75)
tree.insert(5)
tree.insert(705)
tree.insert(1)
tree.insert(3)
tree.insert(500)
tree.inorder_printout()
print('Done')