파이썬 자료구조와 알고리즘(12)-그래프 기초
업데이트:
그래프 이론 생략 ****
3. 트리와의 연결점
트리에서 각 노드는 최대 하나의 부모 노드에 의해서만 참조된다.
3.1 트리 구현하기
트리는 중첩 리스트 또는 클래스 정의를 통해 구현할 수 있다.
class SimpleTree(object):
def __init__(self, value=None, children=None):
self.value = value
self.children = children
if self.children is None:
self.children = []
def __repr__(self, level=0):
ret = '\t'*level + repr(self.value) + '\n'
for child in self.children:
ret += child.__repr__(level+1)
return ret
# 딕셔너리 클래스의 특수화
class BunchClass(dict):
def __init__(self, *args, **kwds):
super(BunchClass, self).__init__(*args, **kwds)
self.__dict__ = self
bc = BunchClass # ()가 없다.
tree = bc(left=bc(left='buffy', right='angel'),
right=bc(left='willow', right='xander'))
print(tree)
{'left': {'left': 'buffy', 'right': 'angel'}, 'right': {'left': 'willow', 'right': 'xander'}}
댓글남기기