■ __remove_recursion 메서드 스택 프레임
__remove_recursion 메서드를 처음 보고 쉽게 이해할 수는 없습니다. 이 메서드의 작동 방식을 좀 더 쉽게 이해할 수 있도록 실행 도중의 스택 프레임을 살펴보겠습니다.
그림 14-8과 같은 트리가 있고 이 트리에서 2를 삭제한다고 가정하겠습니다.
그림 14-8 예제 트리
유저 프로그래머가 remove(2)를 호출하면 __remove_recursion(2)가 호출되겠지요? 이제 스택 프레임을 그려 볼까요?
그림 14-9를 보면 대상 데이터 2가 6보다 작으므로 현재 노드의 왼쪽 자식 노드를 인자로 전달하며 다시 함수를 호출합니다.
그림 14-9 __remove_recursion 스택 프레임 ①