[アルゴリズム/規格]1260号:DFSとBFS(python)
例は正しいが、エラーとして表示されているため、set型がソートを保証できないことに初めて気づいた.そこでextendセクションでソートしました.
from collections import deque
def make_graph(N, M):
graph = dict()
for i in range(N):
graph[i + 1] = set()
for _ in range(M):
a, b = map(int, input().split())
graph[a].add(b)
graph[b].add(a)
return graph
def dfs(V, graph):
visited = list()
q = list()
q.append(V)
while q:
node = q.pop()
if node not in visited:
q.extend(sorted(list(graph[node]), reverse=True))
visited.append(node)
print(*visited)
def bfs(V, graph):
visited = list()
q = deque()
q.append(V)
while q:
node = q.popleft()
if node not in visited:
q.extend(sorted(list(graph[node])))
visited.append(node)
print(*visited)
if __name__ == "__main__":
N, M, V = map(int, input().split())
graph = make_graph(N, M)
dfs(V, graph)
bfs(V, graph)
Reference
この問題について([アルゴリズム/規格]1260号:DFSとBFS(python)), 我々は、より多くの情報をここで見つけました https://velog.io/@y7y1h13/알고리즘백준-1260번-DFS와-BFSpythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol