问题描述
众所周知,DFS 输出的逆序是拓扑排序。
来源:- http://www.cse.ust.hk/faculty/golin/COMP271Sp03/Notes/MyL08.pdf
class Solution:
#Function to return list containing vertices in Topological order.
def dfs(self,v,adj):
# Code here
self.visited.add(v)
self.stack.append(v)
for i in adj[v]:
if i not in self.visited:
self.dfs(i,adj)
def topoSort(self,V,adj):
# Code here
self.visited=set()
self.stack=[]
for i in range(V):
if i not in self.visited:
self.dfs(i,adj)
return self.stack[::-1]
#{
# Driver Code Starts
# Driver Program
if __name__=='__main__':
t = int(input())
for i in range(t):
e,N = list(map(int,input().strip().split()))
adj = [[] for i in range(N)]
for i in range(e):
u,v=map(int,input().split())
adj[u].append(v)
ob = Solution()
res = ob.topoSort(N,adj)
print(res)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)