算法第四版- 4.2

算法第四版- 4.2

有向图


以下文章很多都来自这个大佬
在这里插入图片描述

1.单点或多点的可达性

使用dfs判断可以到达哪些顶点
public DirectedDFS(Digraph G, Iterable sources)
这个sources就是,如果只有一个元素,就是单点可达。如果有多个元素,就是多点可达。
单点/多点可达

2.单点有向路径

dfs

3.单点最短有向路径

SPFA算法
然后上面这个链接对应的Dijkstra和Floyd都很不错
没有加权的情况下也可以用bfs去求解

4.有向环的检测

有向环的检测与拓扑排序
在这里插入图片描述
书上的图说的非常好。
edgeTo[]的是说明边的有向,应该说是一种反向,因为for循环用到了
是这样走的,0->5->4->3->
然后发现有问题
就执行for循环,v=3,x=3,w=3的下一个节点,也就是5
for循环负责把3反向到5的压入cycle,这里只有4一个节点
然后压入w=5和v=3;

5.深度优先的顶点排序

同上链接,三种排序图片说的很详细,代码也很详细。

6.优先级限制下的调度问题

和拓扑排序一样。

7.拓扑排序

就是 逆后序排列!!!
链接还是上面那个
这个和老师讲的不一样,因为他先判断了是否有环。而平时教的拓扑排序其实也是用来判环的。

8.强连通性

B站视频
我好像懂了,但又没有完全懂,挖个坑。
Kosaraju算法

9.顶点对的可达性

算了,不写了,摆烂吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值