#-*- coding: cp936 -*- -*-
import sys
def topologicSort(node,connected):
for i in range(len(node)):
isOk = False #是否可以继续
mark=-1
for key in connected:
if not connected[key]:
mark=key
isOk=True
del connected[key]
break
if isOk:
print(node[mark])
for key in connected:
if mark in connected[key]:
connected[key].remove(mark)
else:
print(u"有向图中存在环")
return
def main():
#与教材使用邻接表不同,我使用逆邻接表来表示图
node = ['V1','V2','V3','V4','V5','V6']
connected = { 0:[],
1:[0,2],
2:[0],
3:[0,5],
4:[2,3,5],
5:[] }
topologicSort(node,connected)
if __name__=='__main__':
main()
结果截图: