パイソンによる深さ優先探索


オプションの子ノードの名前と配列を持つノードクラスを指定します.まとめると、これらのノードは木構造を形成する.

class Node:
    def __init__(self, name):
        self.children = []
        self.name = name
    def addChild(self, name):
        self.children.append(Node(name))
        return self
    def depthFirstSearch(self, array):
        array.append(self.name)
        for child in self.children:
            child.depthFirstSearch(array)
        return array