더북(TheBook)

8.3 이진 탐색 트리

동적 배열부터 스택까지 모두 데이터를 직접 저장했습니다. 하지만 이진 탐색 트리는 노드에 데이터를 직접 저장하지 않습니다. 데이터에 대한 참조만 저장합니다. 중요한 것은 데이터가 아니라 이 데이터의 참조를 저장하고 있는 노드를 나타내는 키입니다. 키만 빠르게 검색할 수 있다면 데이터는 참조를 이용해서 바로 접근할 수 있을 것입니다.1

코드 8-2

class TreeNode:
    def __init__(self, key):
        self.__key = key
        self.__left = None
        self.__right = None
        self.__parent = None

    def __del__(self):
        print('key {} is deleted'.format(self.__key))

    @property
    def key(self):
        return self.__key

    @key.setter
    def key(self, key):
        self.__key = key

    @property
    def left(self):
        return self.__left

    @left.setter
    def left(self, left):
        self.__left = left

    @property
    def right(self):
        return self.__right

    @right.setter
    def right(self, right):
        self.__right = right

    @property
    def parent(self):
        return self.__parent

    @parent.setter
    def parent(self, p):
        self.__parent = p

 

 


1 코드 8-2~코드 8-10은 BST.py 파일에 있습니다.

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