더북(TheBook)

__remove_recursion 메서드 스택 프레임

__remove_recursion 메서드를 처음 보고 쉽게 이해할 수는 없습니다. 이 메서드의 작동 방식을 좀 더 쉽게 이해할 수 있도록 실행 도중의 스택 프레임을 살펴보겠습니다.

그림 14-8과 같은 트리가 있고 이 트리에서 2를 삭제한다고 가정하겠습니다.

307

그림 14-8 예제 트리


유저 프로그래머가 remove(2)를 호출하면 __remove_recursion(2)가 호출되겠지요? 이제 스택 프레임을 그려 볼까요?

그림 14-9를 보면 대상 데이터 2가 6보다 작으므로 현재 노드의 왼쪽 자식 노드를 인자로 전달하며 다시 함수를 호출합니다.

308

그림 14-9 __remove_recursion 스택 프레임 ①

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