[DFS/BFS]1260-DFSとBFS
リンク:DFSとBFS
入力は、1行に接続された2つの頂点を与えるからです.
隣接リストに置き換えるために、処理+双方向グラフに変更します.
また,リストソートも行い,数字が小さいノードから探索できるようにした.よかった.
コード#コード#
from collections import deque
n,m,start = map(int, input().split())
graph=[[] for i in range(n+1)]
visited=[False]*(n+1)
for i in range(m):
s,e = map(int, input().split())
graph[s].append(e)
graph[e].append(s) #양방향
for line in graph:
line.sort()
#dfs 함수
def dfs(start):
visited[start]=True
print(start, end=' ')
for v in graph[start]:
if visited[v]==False:
dfs(v)
#bfs 함수
def bfs(start):
queue = deque()
visited[start] = True
queue.append(start)
while queue:
v = queue.popleft()
print(v,end=' ')
for i in graph[v]:
if visited[i]==False:
visited[i]=True
queue.append(i)
dfs(start)
visited=[False]*(n+1)
print()
bfs(start)
これは単にDFSとBFSを実現する問題である.入力は、1行に接続された2つの頂点を与えるからです.
隣接リストに置き換えるために、処理+双方向グラフに変更します.
また,リストソートも行い,数字が小さいノードから探索できるようにした.よかった.
Reference
この問題について([DFS/BFS]1260-DFSとBFS), 我々は、より多くの情報をここで見つけました https://velog.io/@isg/DFSBFS-1260번-DFS와-BFSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol