-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtraversal.py
38 lines (33 loc) · 1.06 KB
/
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
'''preorder, postorder, and inorder traversal'''
from binaryTree import BaseBinaryTree
class BinaryTree(BaseBinaryTree):
def preorder_traverse(self, node):
if not node:
return []
return (
[node.value] +
self.preorder_traverse(node.left) +
self.preorder_traverse(node.right)
)
def inorder_traverse(self, node):
if not node:
return []
return (
self.preorder_traverse(node.left) +
[node.value] +
self.preorder_traverse(node.right)
)
def postorder_traverse(self, node):
if not node:
return []
return (
self.postorder_traverse(node.left) +
self.postorder_traverse(node.right) +
[node.value]
)
level_order = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
tree = BinaryTree(level_order)
preorder = tree.preorder_traverse(tree.root)
inorder = tree.inorder_traverse(tree.root)
postorder = tree.postorder_traverse(tree.root)
print(preorder,postorder,inorder,sep=" \n")