파이썬 자료구조와 알고리즘(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'}}

댓글남기기