白駿1260号-Dfsとbfs
1120 ワード
from collections import deque
def dfs(node):
visited.append(node)
result.append(node)
for i in sorted(graph[node]):
if i in visited:
continue
dfs(i)
def bfs(node):
visited.append(node)
result.append(node)
queue = deque([node])
while True:
node = queue.popleft()
for i in sorted(graph[node]):
if i in visited:
continue
queue.append(i)
result.append(i)
visited.append(i)
if not queue:
break
n, m, v = map(int, input().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
x, y = map(int, input().split())
graph[x].append(y)
graph[y].append(x)
result = []
visited = []
dfs(v)
for i in result:
print(i, end=" ")
print()
result = []
visited = []
bfs(v)
for i in result:
print(i, end=" ")
プール(dfsを通るプール)1.図形を幹線初期化し、結果、アクセス初期化する.
2.dfsで順番に結果に入れ、そのまま出力します.この場合は昇順に幹線を並べます.
プール(bfsを通るプール)
1.図形を幹線初期化し、結果、アクセス初期化する.
2.bfsで順番に結果に入れてそのまま出力する場合は、昇順に幹線を並べる必要があります.
Reference
この問題について(白駿1260号-Dfsとbfs), 我々は、より多くの情報をここで見つけました https://velog.io/@aksmf1442/백준-1260번-dfs와-bfsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol