이번에는 매개변수로 전달된 노드를 루트로 하는 이진 탐색 트리의 최솟값을 반환하는 메서드와최댓값을 반환하는 메서드를 만들어 보겠습니다.
코드 8-7
def min(self, cur):
while cur.left != None:
cur = cur.left
return cur
def max(self, cur):
while cur.right != None:
cur = cur.right
return cur
코드 8-7을 보면 최솟값을 구하는 min 메서드의 구현이 매우 간단합니다. cur를 시작으로 왼쪽 자식을 따라 쭉 내려가면 됩니다. 이는 BST의 정의만 잘 생각해 보아도 너무 당연한데, 이해되지 않는다면 그림 8-3에서 루트 노드 6에서 시작하여 왼쪽 자식 노드를 쭉 따라 내려가 보기 바랍니다. 가장 작은 원소인 2가 나올 것입니다.
최댓값을 구하는 max 메서드도 구현이 매우 간단합니다. 이번에는 cur를 시작으로 오른쪽 자식을 따라 쭉 내려가면 되지요.