모든 노드를 한번씩 방문해 최대한 깊이 많이 가는 것
스택 이용해서 갈 수 있는 만큼 최대한 많이 가고 거친 곳을 스택에 저장
더이상 방문할 노드가 없다면 이전 정점으로 돌아간다.
check
배열을 만들어 방문한 노드와 아닌 노드를 구분함
def dfs(v):
check[v] = False
print(v, end= ' ')
for i in edge[v]:
if check[i] == True:
dfs(i)
모든 노드를 한번씩 방문해 최대한 넓게 가는 것
큐나 덱 사용
def bfs(v):
d = deque()
d.append(v)
check[v] = True
while d:
v = d.popleft()
print(v, end=' ')
for i in edge[v]:
if check[i] == False:
d.append(i)
check[i] = True