더북(TheBook)

그림 10-10을 보면 키 5가 있는 노드의 왼쪽 서브 트리가 비어 있습니다.

▲ 그림 10-10 delete 2

이때는 donate라는 회전 연산을 해야 합니다. 먼저 왼쪽이나 오른쪽 형제 노드에 노드의 최소 키 개수를 충족한 후 남는 키가 있는지 질의합니다. 2-3 트리에서 한 노드의 최소 키 개수는 1입니다. 빈 노드의 오른쪽 서브 트리를 보니 키가 7과 8 두 개가 있으므로 최소 키 개수 한 개를 빼도 한 개가 남습니다. 이때는 빈 노드로 donate할 수 있습니다. 하지만 노드의 가장 작은 키 7을 빈 노드로 바로 줄 수는 없습니다. 그렇게 하면 부모 노드의 키 5보다 왼쪽 서브 트리의 키 7이 더 커집니다.

이때는 회전 연산을 해야 합니다. 다음 그림과 같이 부모 노드의 키 5가 왼쪽 서브 트리로 가고 7이 부모 노드로 가야 하죠.

▲ 그림 10-11 donate 2

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.