자료구조

[자료구조] AVL트리란? LL, LR, RR, RL?

Huiyeon 2023. 7. 25. 14:22

 

AVL트리

- AVL 트리란 이진 검색 트리가 항상 균형을 유지하도록 하는 대표적인 예다.

- 어떤 노드 t의 좌서브 트리(t.left) 우서브 트리(t.right)의 높이 차가 1이하이다.

- [왼쪽 서브트리 깊이 - 오른쪽 서브트리 깊이] = -1이 나온다면 균형이 맞다는 뜻이다.

- 위 성질을 만족한다면 AVL트리이다.

 

정상적인 AVL트리  |  정상적인 AVL트리가 아님

 

균형이 깨졌을 때 해결할 수 있는 유형 4가지

1. LL: t.left.left가 가장 깊을 때

2. LR: t.left.right가 가장 깊을 때

3. RR: t.right.right가 가장 깊을 때

4. RL: t.right.left가 가장 깊을 때

 

LL유형의 해결

- t를 기준으로 우회전하면 깊이가 같은 것을 확인할 수 있다.

 

LR유형의 해결

- t.left를 기준으로 좌회전해서 LL유형으로 만든 다음 t를 기준으로 우회전한다.

 

RR유형의 해결

- t를 기준으로 좌회전한다. LL타입과 정확히 좌우 대칭으로 동일한 원리 적용

 

RL유형의 해결

- t.left를 기준으로 우회전해서 RR유형으로 만든 다음 t를 기준으로 좌회전한다.

LR타입과 정확히 좌우 대칭으로 동일한 원리가 적용된다.

반응형