顶点活动网的拓扑排序

def aovpath(aov):#从入度为0的开始顶点i找关键路径
    for i in range(len(aov)):
        if 0==aov[i][0]:
            findaov(i)
def findaov(a,p=[],r=[]):
    p.append(a)#路径入栈
    if 0==len(aov[a][1]):print(p)#到终点
    for i in list(aov[a][1]):#还有后续
        r.append(i)#子分支入栈
        while 0!=len(r):
            findaov(r.pop(),p,r)#分支出栈,递归调用findaov
    p.pop()#a出栈

aov = ((0,(2,7)),(0,(2,3,4)),(2,(3,)),(2,(5,6)),(1,(5,)),
(2,()),(2,()),(1,(8,)),(1,(6,))) #(0,(2,7)),顶点0的入度0,后续顶点2和7.
aovpath(aov)的拓扑排序结果
[0, 2, 3, 5]
[0, 2, 3, 6]
[0, 7, 8, 6]
[1, 2, 3, 5]
[1, 2, 3, 6]
[1, 3, 5]
[1, 3, 6]
[1, 4, 5]
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值