자료구조 배우고 있는데요...
avl트리의 회전이 너무 어려워요....ㅠㅜ
LL회전은 그냥 그럭저럭 알겠는데...
LR은 너무 혼동됩니다...
고수님들은 어떻게 이해하셨는지 궁금합니다...
물론 책에서 나온데로 포인터이동해주는건 이해하겠는데..
왜 이렇게 해야하는지...를 모르겠습니다.
간단한 원칙이 있는지...
아니면 그냥 무식하게 이렇게 하라는데로 해야하는지...
도와주세요....ㅠㅜ
LR 은 왼쪽 자식의 오른쪽 서브트리에 삽입되어 불균형이 생긴 경우입니다. 불균형 노드 A, 그 자식 B, B 의 자식 C 라면 C 가 A 와 B 의 중간 값이어서 C 를 루트로 올려야 합니다.
그래서 B 를 좌회전해 LL 모양으로 만든 뒤 A 를 우회전하는 이중 회전이 필요합니다. 세 노드를 크기 순으로 놓아 중간 값을 위로 올린다고 이해하면 됩니다.