포도가게의 개발일지
stack or queue로 구현한 (DFS & BFS ) 본문
반응형
def bfs(graph, start_node):
visit = list()
queue = list()
queue.append(start_node)
while queue:
node = queue.pop(0)
if node not in visit:
visit.append(node)
queue.extend(graph[node])
return visit
def dfs(graph, start_node):
visit = list()
stack = list()
stack.append(start_node)
while stack:
node = stack.pop()
print(node)
if node not in visit:
visit.append(node)
stack.extend(graph[node])
return visit
if __name__ == "__main__":
graph = {
'A': ['B'],
'B': ['A', 'C', 'H'],
'C': ['B', 'D'],
'D': ['C', 'E', 'G'],
'E': ['D', 'F'],
'F': ['E'],
'G': ['D'],
'H': ['B', 'I', 'J', 'M'],
'I': ['H'],
'J': ['H', 'K'],
'K': ['J', 'L'],
'L': ['K'],
'M': ['H']
}
print(bfs(graph, 'A'))
print(dfs(graph, 'A'))
1. stack을 이용한 DFS 구현
'자료구조' 카테고리의 다른 글
다이나믹 프로그래밍 DP & 백준 피보나치 수열 (0) | 2021.08.26 |
---|---|
위상정렬 & 백준 2252 줄세우기 (0) | 2021.08.20 |
Merge sort(병합 정렬) (0) | 2021.07.13 |
Quick Sort(퀵 정렬) (0) | 2021.07.09 |
연결리스트(1)add_first 함수 이해 (0) | 2021.07.01 |
Comments