topological_sort에서 사용하는 init_visited와 dfs를 코드로 본 후 그림으로 작동 방식을 알아보겠습니다.
코드 12-3
def init_visited(self):
for i in range(len(self.visited)):
self.visited[i] = False
def dfs(self, v, ts_list):
self.visited[v] = True
adj_v = self.adj_list[v]
for u in adj_v:
if not self.visited[u]:
self.dfs(u, ts_list)
ts_list.append(v)