深さ優先探索法: 行けるところまで進もう
深さ優先探索法は、分かれ道があるときに、まず1つの道を行けるところまで進み、行き止まりになったら戻る方法です。
迷路で「まず右の道を最後まで進んで、だめなら戻る」と決めるイメージです。
ルール
- スタート地点を訪れる
- まだ行っていない隣の地点へ進む
- 行けるところまで進む
- 行き止まりになったら、1つ前に戻る
図で見る
コピペ用コード
def depth_first_search(graph, start):
visited = set()
order = []
def visit(node):
visited.add(node)
order.append(node)
for next_node in graph[node]:
if next_node not in visited:
visit(next_node)
visit(start)
return order
graph = {
"A": ["B", "C"],
"B": ["D"],
"C": ["E"],
"D": [],
"E": [],
}
print(depth_first_search(graph, "A"))