@@ -46,4 +46,76 @@ public void dfs_preOrderTraversal_shouldReturnAccurate() {
46
46
assert secondResult .equals (secondList );
47
47
assert thirdResult .equals (thirdList );
48
48
}
49
+
50
+ @ Test
51
+ public void dfs_inOrderTraversal_shouldReturnAccurate () {
52
+ // empty tree
53
+ List <Integer > firstList = new ArrayList <>();
54
+ BinaryTreeNode root1 = null ;
55
+ List <Integer > firstResult = depthFirstSearch .inOrder (root1 );
56
+
57
+ //standard tree
58
+ // 1
59
+ // / \
60
+ // 2 3
61
+ // / \
62
+ // 4 5
63
+ List <Integer > secondList = new ArrayList <>(Arrays .asList (2 , 1 , 4 , 3 , 5 ));
64
+ BinaryTreeNode rootRight2 = new BinaryTreeNode (3 , new BinaryTreeNode (4 ), new BinaryTreeNode (5 ));
65
+ BinaryTreeNode root2 = new BinaryTreeNode (1 , new BinaryTreeNode (2 ), rootRight2 );
66
+ List <Integer > secondResult = depthFirstSearch .inOrder (root2 );
67
+
68
+ //standard tree 2
69
+ // 1
70
+ // / \
71
+ // 2 7
72
+ // / \
73
+ // 3 5
74
+ // / /
75
+ // 4 6
76
+ List <Integer > thirdList = new ArrayList <>(Arrays .asList (4 , 3 , 2 , 6 , 5 , 1 , 7 ));
77
+ BinaryTreeNode rootLeft3 = new BinaryTreeNode (2 , new BinaryTreeNode (3 , new BinaryTreeNode (4 ), null ), new BinaryTreeNode (5 , new BinaryTreeNode (6 ), null ));
78
+ BinaryTreeNode root3 = new BinaryTreeNode (1 , rootLeft3 , new BinaryTreeNode (7 ));
79
+ List <Integer > thirdResult = depthFirstSearch .inOrder (root3 );
80
+
81
+ assert firstResult .equals (firstList );
82
+ assert secondResult .equals (secondList );
83
+ assert thirdResult .equals (thirdList );
84
+ }
85
+
86
+ @ Test
87
+ public void dfs_postOrderTraversal_shouldReturnAccurate () {
88
+ // empty tree
89
+ List <Integer > firstList = new ArrayList <>();
90
+ BinaryTreeNode root1 = null ;
91
+ List <Integer > firstResult = depthFirstSearch .inOrder (root1 );
92
+
93
+ //standard tree
94
+ // 1
95
+ // / \
96
+ // 2 3
97
+ // / \
98
+ // 4 5
99
+ List <Integer > secondList = new ArrayList <>(Arrays .asList (2 , 4 , 5 , 3 , 1 ));
100
+ BinaryTreeNode rootRight2 = new BinaryTreeNode (3 , new BinaryTreeNode (4 ), new BinaryTreeNode (5 ));
101
+ BinaryTreeNode root2 = new BinaryTreeNode (1 , new BinaryTreeNode (2 ), rootRight2 );
102
+ List <Integer > secondResult = depthFirstSearch .postOrder (root2 );
103
+
104
+ //standard tree 2
105
+ // 1
106
+ // / \
107
+ // 2 7
108
+ // / \
109
+ // 3 5
110
+ // / /
111
+ // 4 6
112
+ List <Integer > thirdList = new ArrayList <>(Arrays .asList (4 , 3 , 6 , 5 , 2 , 7 , 1 ));
113
+ BinaryTreeNode rootLeft3 = new BinaryTreeNode (2 , new BinaryTreeNode (3 , new BinaryTreeNode (4 ), null ), new BinaryTreeNode (5 , new BinaryTreeNode (6 ), null ));
114
+ BinaryTreeNode root3 = new BinaryTreeNode (1 , rootLeft3 , new BinaryTreeNode (7 ));
115
+ List <Integer > thirdResult = depthFirstSearch .postOrder (root3 );
116
+
117
+ assert firstResult .equals (firstList );
118
+ assert secondResult .equals (secondList );
119
+ assert thirdResult .equals (thirdList );
120
+ }
49
121
}
0 commit comments