算法第四版- 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.顶点对的可达性
算了,不写了,摆烂吧。