깊이 우선 순위 검색

2580 단어 Python3DFS
깊이 우선 순위 검색
노드에서 노드로 내려가서 부딪힌 후 분기점으로 되돌아가다
또한 열리지 않은 노드로 내려가는 알고리즘.
나는 귀속으로 코드를 썼다.

구체적인 예로 상술한 트리에 대해 깊이 우선 검색을 실시했다.
#python3
#sys.setrecursionlimit(10000) #再帰の回数上限変更 (デフォルト1000回)

# 各ノードから,どのノードにエッジ(枝)が伸びているか調べてリスト化する (隣接リスト)
edge = [[1, 2], [0, 3, 4], [0, 5], [1], [1], [2]]

def dfs(now, before=-1):#before:一つ前に通ったノード
    if before==-1:
        print(now)
    for c in edge[now]: #c:子
        if not c ==before: #無限ループを防ぐ
            print(c)
            dfs(c, now) #再帰

dfs(0)
결과 내보내기
0
1
3
4
2
5
감사합니다.

좋은 웹페이지 즐겨찾기