더북(TheBook)

마지막으로 부모의 왼쪽 자식이 현재 노드라면 루트를 만나든가 부모의 오른쪽 자식이 현재 노드가 될 때까지 계속 부모를 타고 올라갑니다. 부모의 오른쪽 자식이 현재 노드란 의미는 부모 노드가 현재 노드의 이전 노드임을 의미합니다.

next()prev() 메서드와 유사합니다. 다만 방향이 반대일 뿐이지요. 시간을 내어 그림 8-7과 같이 꼭 그려 보기 바랍니다.

코드 8-9

    bst = BST()

    bst.insert(6)
    bst.insert(3)
    bst.insert(2)
    bst.insert(4)
    bst.insert(5)
    bst.insert(8)
    bst.insert(10)
    bst.insert(9)
    bst.insert(11)

    f = lambda x: print(x.key, end=' ')
    bst.inorder_traverse(bst.get_root(), f)

코드 8-9는 예제 코드의 일부를 가져온 것입니다. 이진 탐색 트리는 그림 8-3이 됩니다. 이 트리에 대해 중위 순회를 실행하면 다음 결과가 출력됩니다.

2  3  4  5  6  8  9  10  11
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.