☁️정리/❄️알고리즘

[Algorithm] DFS/BFS

뿌야._. 2022. 1. 15. 22:43

❓DFS와 BFS

 

- 주어진 그래프에서 모든 노드를 방문하는 알고리즘

 

 

❓DFS

 

- Depth First Search (깊이 우선 탐색)

- 임의의 정점에서 시작하여 이웃하는 하나의 정점을 방문하고, 방금 방문한 정점의 이웃 정점을 방문

 

def dfs(x):
	visited[x]=True
    for i in graph[x]:
    	if not visited[i]:
        	dfs(i)

 

 

❓BFS

 

- Breadth First Search (너비 우선 탐색)

- 임의의 정점에서 시작하여 이웃하는 모든 정점들을 방문하고, 방문한 정점들의 이웃 정점들을 방문

 

def bfs(x):
	queue=[]
    visited[x]=True
    queue.append(x)
    while len(queue)!=0:
    	v=queue.pop(0)
        for i in graph(v):
        	if not visited[i]:
            	visited[i]=True
                queue.append(i)