@@ -104,4 +104,106 @@ class BinarySearchTreeNodeTest {
104
104
assertThat (bstRoot .search (8 ).getData ())
105
105
.isEqualTo (bstRoot .remove (8 ).getData ());
106
106
}
107
+
108
+ @ Test
109
+ @ DisplayName ("AVL_트리_테스트" )
110
+ void AVL_트리_테스트 () {
111
+ BinarySearchTreeNode <Integer > bstRoot = new AVLTreeNode <>(1 , (Comparator .comparingInt (o -> o )));
112
+ BinaryTreeNode <Integer > searchNode ;
113
+
114
+ bstRoot .insert (5 );
115
+ bstRoot .insert (6 );
116
+ bstRoot .insert (2 );
117
+ bstRoot .insert (8 );
118
+ bstRoot .insert (3 );
119
+ bstRoot .insert (9 );
120
+
121
+ searchNode = bstRoot .search (1 );
122
+ assertThat (searchNode ).isNotNull ();
123
+ assertThat (searchNode .getData ()).isEqualTo (1 );
124
+
125
+ searchNode = bstRoot .search (4 );
126
+ assertThat (searchNode ).isNull ();
127
+
128
+ searchNode = bstRoot .search (6 );
129
+ assertThat (searchNode ).isNotNull ();
130
+ assertThat (searchNode .getData ()).isEqualTo (6 );
131
+
132
+ searchNode = bstRoot .search (7 );
133
+ assertThat (searchNode ).isNull ();
134
+
135
+ BinaryTreeNode <Integer > rootNode = bstRoot .search (5 );
136
+ BinaryTreeNode <Integer > rootNodeLeftSubTree = rootNode .getLeftSubTree ();
137
+ BinaryTreeNode <Integer > rootNodeRightSubTree = rootNode .getRightSubTree ();
138
+
139
+ assertThat (rootNode .getData ()).isEqualTo (5 );
140
+ assertThat (rootNodeLeftSubTree .getData ()).isEqualTo (2 );
141
+ assertThat (rootNodeRightSubTree .getData ()).isEqualTo (8 );
142
+ assertThat (rootNodeLeftSubTree .getLeftSubTree ().getData ()).isEqualTo (1 );
143
+ assertThat (rootNodeLeftSubTree .getRightSubTree ().getData ()).isEqualTo (3 );
144
+ assertThat (rootNodeRightSubTree .getLeftSubTree ().getData ()).isEqualTo (6 );
145
+ assertThat (rootNodeRightSubTree .getRightSubTree ().getData ()).isEqualTo (9 );
146
+ }
147
+
148
+ @ Test
149
+ @ DisplayName ("AVL_트리_제거_테스트" )
150
+ void AVL_트리_제거_테스트 () {
151
+ BinarySearchTreeNode <Integer > bstRoot = new AVLTreeNode <>(5 , (Comparator .comparingInt (o -> o )));
152
+
153
+ bstRoot .insert (1 );
154
+ bstRoot .insert (2 );
155
+ bstRoot .insert (3 );
156
+ bstRoot .insert (7 );
157
+ bstRoot .insert (8 );
158
+ bstRoot .insert (9 );
159
+
160
+ BinaryTreeNode <Integer > rootNode = bstRoot .search (2 );
161
+ BinaryTreeNode <Integer > rootNodeLeftSubTree = rootNode .getLeftSubTree ();
162
+ BinaryTreeNode <Integer > rootNodeRightSubTree = rootNode .getRightSubTree ();
163
+ BinaryTreeNode <Integer > rootNodeRightSubTreeLeftSubTree = rootNodeRightSubTree .getLeftSubTree ();
164
+
165
+ assertThat (rootNode .getData ()).isEqualTo (2 );
166
+ assertThat (rootNodeLeftSubTree .getData ()).isEqualTo (1 );
167
+ assertThat (rootNodeRightSubTree .getData ()).isEqualTo (8 );
168
+ assertThat (rootNodeRightSubTreeLeftSubTree .getData ()).isEqualTo (5 );
169
+ assertThat (rootNodeRightSubTree .getRightSubTree ().getData ()).isEqualTo (9 );
170
+ assertThat (rootNodeRightSubTreeLeftSubTree .getLeftSubTree ().getData ()).isEqualTo (3 );
171
+ assertThat (rootNodeRightSubTreeLeftSubTree .getRightSubTree ().getData ()).isEqualTo (7 );
172
+
173
+ assertThat (bstRoot .search (2 ).getData ()).isEqualTo (bstRoot .remove (2 ).getData ());
174
+ assertThat (bstRoot .search (7 ).getData ()).isEqualTo (bstRoot .remove (7 ).getData ());
175
+ assertThat (bstRoot .search (8 ).getData ()).isEqualTo (bstRoot .remove (8 ).getData ());
176
+ assertThat (bstRoot .search (5 ).getData ()).isEqualTo (bstRoot .remove (5 ).getData ());
177
+ }
178
+
179
+ @ Test
180
+ @ DisplayName ("AVL_트리_제거_테스트2" )
181
+ void AVL_트리_제거_테스트2 () {
182
+ BinarySearchTreeNode <Integer > bstRoot = new AVLTreeNode <>(1 , (Comparator .comparingInt (o -> o )));
183
+
184
+ bstRoot .insert (3 );
185
+ bstRoot .insert (4 );
186
+ bstRoot .insert (5 );
187
+ bstRoot .insert (7 );
188
+ bstRoot .insert (8 );
189
+ bstRoot .insert (9 );
190
+
191
+ BinaryTreeNode <Integer > rootNode = bstRoot .search (3 );
192
+ BinaryTreeNode <Integer > rootNodeLeftSubTree = rootNode .getLeftSubTree ();
193
+ BinaryTreeNode <Integer > rootNodeRightSubTree = rootNode .getRightSubTree ();
194
+
195
+ assertThat (rootNode .getData ()).isEqualTo (3 );
196
+ assertThat (rootNodeLeftSubTree .getData ()).isEqualTo (1 );
197
+ assertThat (rootNodeRightSubTree .getData ()).isEqualTo (7 );
198
+ assertThat (rootNodeRightSubTree .getLeftSubTree ().getData ()).isEqualTo (5 );
199
+ assertThat (rootNodeRightSubTree .getRightSubTree ().getData ()).isEqualTo (8 );
200
+
201
+ assertThat (bstRoot .search (1 ).getData ()).isEqualTo (bstRoot .remove (1 ).getData ());
202
+ assertThat (bstRoot .search (3 ).getData ()).isEqualTo (bstRoot .remove (3 ).getData ());
203
+ assertThat (bstRoot .search (5 ).getData ()).isEqualTo (bstRoot .remove (5 ).getData ());
204
+ assertThat (bstRoot .search (4 ).getData ()).isEqualTo (bstRoot .remove (4 ).getData ());
205
+ assertThat (bstRoot .search (7 ).getData ()).isEqualTo (bstRoot .remove (7 ).getData ());
206
+ assertThat (bstRoot .search (9 ).getData ()).isEqualTo (bstRoot .remove (9 ).getData ());
207
+ assertThat (bstRoot .search (8 ).getData ()).isEqualTo (bstRoot .remove (8 ).getData ());
208
+ }
107
209
}
0 commit comments