def topoSort(self): st = Stack() visited = [False] * self.V for node in self.adj: if visited[node] == False: self.DFS(node, visited, st) while st.empty() == False: print "%s " % st.pop(),
def dfs(self, idx): st = Stack() #self.visited[idx] = True st.push(idx) while st.empty() is False: tmp = st.pop() #print 'node :',tmp #st.get_stack() if self.visited[tmp] is False: print tmp, " ", self.visited[tmp] = True for node in self.graph[tmp]: if self.visited[node] is False: st.push(node)