Skip to content

Commit 93209d0

Browse files
committed
feat: 리밸런싱에 필요한 도구 정의 균형을 이루고 있는지 판단하는 메서드 작성
1 parent c1cf80e commit 93209d0

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,32 @@
11
package search.binarysearchtree;
22

33
import java.util.Comparator;
4+
import tree.binarytree.BinaryTreeNode;
45

56
public class AVLTreeNode<E> extends LinkedBinarySearchTreeNode<E> {
67

78
public AVLTreeNode(E data, Comparator<E> comparator) {
89
super(data, comparator);
910
}
11+
12+
private int getHeight(BinaryTreeNode<E> binaryTreeNode) {
13+
if (binaryTreeNode == null) {
14+
return 0;
15+
}
16+
int leftHeight = getHeight(binaryTreeNode.getLeftSubTree());
17+
int rightHeight = getHeight(binaryTreeNode.getRightSubTree());
18+
19+
return leftHeight > rightHeight ? leftHeight + 1 : rightHeight + 1; // 큰 쪽의 높이 반환
20+
}
21+
22+
private int getEquilibriumFactor(BinaryTreeNode<E> binaryTreeNode) {
23+
if (binaryTreeNode == null) {
24+
return 0;
25+
}
26+
27+
int leftHeight = getHeight(binaryTreeNode.getLeftSubTree());
28+
int rightHeight = getHeight(binaryTreeNode.getRightSubTree());
29+
30+
return leftHeight - rightHeight;
31+
}
1032
}

0 commit comments

Comments
 (0)