BFS/DFS 파이썬
BFS 와 DFS란?
대표적인 그래프 탐색 알고리즘
너비우선탐색: 정점들과 같은 레벨에 있는 노드들을 먼저 탐색하는 방식
깊이 우선 탐색: 정점의 자식들을 먼저 탐색하는 방식
BFS DFS 예시
BFS: 한 단계씩 내려가면서, 해당 노드와 같은 레벨에 있는 노드들을 먼저 순회한다.
DFS:한 노드의 자식을 타고 끝까지 순회한 후 다시 돌아와서 다른 형제들의 자식을 타고 내려가며 순회함
파이썬으로 그래프 표현
파이썬으로 DFS 구현하기
dfs 구현에는 스택을 활용한다.
def dfs(graph, start_node):
visited, need_visit = [], []
need_visit.append(start_node)
while need_visit:
node = need_visit.pop()
if node not in visited:
visited.append(node)
need_visit.extend(graph[node])
return visited
print(dfs(graph,'A'))
파이썬으로 BFS 구현하기
큐를 이용해서 구현한다.
def bfs(graph, start_node):
visited, need_visit = [], []
need_visit.append(start_node)
while need_visit:
node = need_visit.pop(0)
if node not in visited:
visited.append(node)
need_visit.extend(graph[node])
return visited
Author And Source
이 문제에 관하여(BFS/DFS 파이썬), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimjungmini0601/BFSDFS-파이썬저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)