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