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 파일에 있습니다.

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