코드 6-9
def iter_dfs(self, v):
"""
시작 정점으로 돌아가
더 이상 방문할 정점이 없어야 종료
"""
s = Stack()
self.init_visited()
s.push(v)
# 방문 체크 및 방문
self.visited[v] = True
print(v, end=" ")
# 아직 방문하지 않은 정점을 방문했는가
is_visited = False
while not s.empty():
is_visited = False
v = s.peek()
# 인접 리스트를 받아 옵니다.
adj_v = self.adj_list[v]
for u in adj_v:
if not self.visited[u]:
s.push(u)
# 방문 체크 및 방문
self.visited[u] = True
print(u, end=" ")
# 아직 방문하지 않은 정점을 방문했으므로
is_visited = True
break
if not is_visited:
s.pop()