@@ -46,4 +46,76 @@ public void dfs_preOrderTraversal_shouldReturnAccurate() {
4646 assert secondResult .equals (secondList );
4747 assert thirdResult .equals (thirdList );
4848 }
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+ }
49121}
0 commit comments