图论之关键路径

浅看拓扑序列

AOE:

有向无环图中的顶点表示活动或事件,有向边(弧)表示了事件发生的先后关系

注:(A---->B 这个为弧,A为弧尾,B为弧头)

拓扑序列:

给定一个包含一个有向图所有顶点的序列,如果图中任意两个顶点Vi到Vj有一条路径,且在该序列中vi排在vj的前面

注:该序列不唯一

应用:

判断图是否存在环(用一个计数器记录每次出栈或出队次数,小于顶点数则存在环)

求关键路径

算法步骤

1、对于每一个点用一个数组d[i]记录i号顶点的入度

2、一遍循环找到入度为0 的顶点入栈(队列)

3、循环:如果栈(队列)非空

{

取出栈顶(队首)t,输出(记录)

将领接表中以t为起点的边的终点的入度-1(相当于删除该顶点即它的所有出边)

如果该终点的入度为0 则入栈(入队)

}

注:手写数组队列时,整个过程结束后,队列从0到队尾所保存的就是拓扑序列

模板:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值