|
2 | 2 | preorder,
|
3 | 3 | preorder_rec,
|
4 | 4 | postorder,
|
5 |
| - postorder_rec |
| 5 | + postorder_rec, |
| 6 | + inorder, |
| 7 | + inorder_rec |
6 | 8 | )
|
7 | 9 |
|
8 | 10 | import unittest
|
9 | 11 |
|
| 12 | + |
10 | 13 | class Node:
|
11 | 14 |
|
12 | 15 | def __init__(self, val, left=None, right=None):
|
13 | 16 | self.val = val
|
14 | 17 | self.left = left
|
15 | 18 | self.right = right
|
16 |
| - |
| 19 | + |
17 | 20 |
|
18 | 21 | class TestTraversal(unittest.TestCase):
|
19 |
| - |
| 22 | + |
20 | 23 | def test_preorder(self):
|
21 |
| - n1 = Node(100) |
22 |
| - n2 = Node(50) |
23 |
| - n3 = Node(150) |
24 |
| - n4 = Node(25) |
25 |
| - n5 = Node(75) |
26 |
| - n6 = Node(125) |
27 |
| - n7 = Node(175) |
28 |
| - n1.left, n1.right = n2, n3 |
29 |
| - n2.left, n2.right = n4, n5 |
30 |
| - n3.left, n3.right = n6, n7 |
31 |
| - self.assertEqual([100, 50, 25, 75, 150, 125, 175], preorder(n1)) |
32 |
| - self.assertEqual([100, 50, 25, 75, 150, 125, 175], preorder_rec(n1)) |
33 |
| - |
| 24 | + tree = create_tree() |
| 25 | + self.assertEqual([100, 50, 25, 75, 150, 125, 175], preorder(tree)) |
| 26 | + self.assertEqual([100, 50, 25, 75, 150, 125, 175], preorder_rec(tree)) |
| 27 | + |
34 | 28 | def test_postorder(self):
|
35 |
| - n1 = Node(100) |
36 |
| - n2 = Node(50) |
37 |
| - n3 = Node(150) |
38 |
| - n4 = Node(25) |
39 |
| - n5 = Node(75) |
40 |
| - n6 = Node(125) |
41 |
| - n7 = Node(175) |
42 |
| - n1.left, n1.right = n2, n3 |
43 |
| - n2.left, n2.right = n4, n5 |
44 |
| - n3.left, n3.right = n6, n7 |
45 |
| - self.assertEqual([25, 75, 50, 125, 175, 150, 100], postorder(n1)) |
46 |
| - self.assertEqual([25, 75, 50, 125, 175, 150, 100], postorder_rec(n1)) |
| 29 | + tree = create_tree() |
| 30 | + self.assertEqual([25, 75, 50, 125, 175, 150, 100], postorder(tree)) |
| 31 | + self.assertEqual([25, 75, 50, 125, 175, 150, 100], postorder_rec(tree)) |
| 32 | + |
| 33 | + def test_inorder(self): |
| 34 | + tree = create_tree() |
| 35 | + self.assertEqual([25, 50, 75, 100, 125, 150, 175], inorder(tree)) |
| 36 | + self.assertEqual([25, 50, 75, 100, 125, 150, 175], inorder_rec(tree)) |
| 37 | + |
| 38 | + |
| 39 | +def create_tree(): |
| 40 | + n1 = Node(100) |
| 41 | + n2 = Node(50) |
| 42 | + n3 = Node(150) |
| 43 | + n4 = Node(25) |
| 44 | + n5 = Node(75) |
| 45 | + n6 = Node(125) |
| 46 | + n7 = Node(175) |
| 47 | + n1.left, n1.right = n2, n3 |
| 48 | + n2.left, n2.right = n4, n5 |
| 49 | + n3.left, n3.right = n6, n7 |
| 50 | + return n1 |
| 51 | + |
| 52 | + |
| 53 | +if __name__ == '__main__': |
| 54 | + unittest.main() |
0 commit comments