拓扑排序

来源:互联网 发布:乐视网络电视手机版 编辑:程序博客网 时间:2024/05/10 20:04
#-*- coding: cp936 -*- -*-import sysdef 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"有向图中存在环")            returndef 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()

结果截图:



0 0
原创粉丝点击