이제 위상 정렬을 담당하는 메서드를 보죠.
코드 12-2
def topological_sort(self):
self.init_visited()
ts_list = []
for i in range(len(self.visited)):
if not self.visited[i]:
self.dfs(i, ts_list)
ts_list.reverse()
return ts_list
코드 12-2를 보면 topological_sort() 메서드가 위상 정렬을 담당합니다. 생긴 모양새는 이전에 구현했던 dfs_all과 비슷합니다. 그런데 한 가지 ts_list라는 리스트가 있군요. 게다가 반환하기 전에는 reverse()까지 호출합니다. 이 ts_list는 어떤 역할을 할까요?