-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbst_tree_traversal.py
49 lines (36 loc) · 1.08 KB
/
bst_tree_traversal.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
from utils import bst
root = bst.BSTNode(10)
root.insert(5)
root.insert(15)
root.insert(5)
root.insert(8)
root.insert(6)
root.insert(2)
root.insert(1)
root.insert(22)
root.display()
arr_in_order = []
arr_pre_order = []
arr_post_order = []
# O(n) time | O(n) space
def in_order_traverse(tree, array):
if tree is not None:
in_order_traverse(tree.left, array)
array.append(tree.value)
in_order_traverse(tree.right, array)
return array
def pre_order_traverse(tree, array):
if tree is not None:
array.append(tree.value)
pre_order_traverse(tree.left, array)
pre_order_traverse(tree.right, array)
return array
def post_order_traverse(tree, array):
if tree is not None:
post_order_traverse(tree.left, array)
post_order_traverse(tree.right, array)
array.append(tree.value)
return array
print("BST traverse in order", in_order_traverse(root, arr_in_order))
print("BST traverse pre order", pre_order_traverse(root, arr_pre_order))
print("BST traverse post order", post_order_traverse(root, arr_post_order))