Depth-First Search (queue)
code: python
from collections import deque
# V: 頂点 E: 辺
# O(V + E), O(V)
def dfs(graph, start):
visited = set()
res = []
while queue:
# LIFO
now = queue.pop()
if now not in visited:
visited.add(now)
res.append(now)
queue.append(v)
return res
graph = {
}
def test_dfs():
assert dfs(graph, 'A') == 'A', 'D', 'J', 'L', 'I', 'C', 'H', 'G', 'B', 'F', 'E', 'K'