采用狄克斯特拉算法求带权有向图的最短路径
领会狄克斯特拉算法求带权有向图中单源最短路径的过程和相关算法设计。
编写一个程序exp8-7.cpp,实现求带权有向图中单源最短路径的狄克斯特拉算法。并输出如图 8.54所示的带权有向图G中从顶点0到达其他个顶点的最短路径长度和最短路径。
实验程序exp8-7.cpp的结构如图所示,图中方框表示函数,方框中指出函数名,箭头方向表示函数间的调用关系,虚线方框表示文件的组成,即指出该虚线框中的函数存放在哪个文件中。
exp8-7.cpp 的结构图
+-----------------+
| exp8-7.cpp |
+-----------------+
/------- | - main() | ->--\
| | - Dijkstra() | <---+
| | - Dispath() | <---/
| +-----------------+
|
| +-----------------+
| | graph.cpp |
| +-----------------+
+--> | + CreateMat() |
\--> | + DisMat() |
+-----------------+
![]() |
图 8.54
图可视化编辑器:
https://csacademy.com/app/graph_editor/
渲染模式:有向图模式
图结点数:6
图数据:
0
1
2
3
4
5
0 1 5
0 3 7
1 2 4
2 0 8
2 5 9
3 2 5
3 5 6
4 3 5
5 4 1
5 0 3
求AOE网中的所有关键活动
领会拓扑排序的AOE网中关键路径的求解过程及算法设计。
编写一个程序exp8-9.cpp,求《教程》中图 8.45所示的AOE网的所有关键内容。
实验程序exp8-9.cpp的结构如图所示,图中方框表示函数,方框中指出函数名,箭头方向表示函数间的调用关系,虚线方框表示文件的组成,即指出该虚线框中的函数存放在哪个文件中。
exp8-9.cpp 的结构图
+-----------------+
| exp8-7.cpp |
+-----------------+
/------- | - main() | ->--\
| | - DisKeyno() | <---+
| | - KeyPath() | <---+
| | - TopSort() | <---/
| +-----------------+
|
| +-----------------+
| | graph.cpp |
| +-----------------+
+--> | + CreateAdj() |
+--> | + DispAdj() |
\--> | + DestroyAdj() |
+-----------------+
![]() |
图 8.45
图可视化编辑器:
https://csacademy.com/app/graph_editor/
渲染模式:有向图模式
图结点数:9
图数据:
A
B
C
D
E
F
G
H
I
A B a_1=6
A C a_2=4
A D a_3=5
B E a_4=1
C E a_5=1
D H a_6=2
E F a_7=9
E G a_8=7
H I a_9=4
F I a_10=2
G I a_11=4
便于处理的版本:
A
B
C
D
E
F
G
H
I
A B 6
A C 4
A D 5
B E 1
C E 1
D H 2
E F 9
E G 7
H I 4
F I 2
G I 4
zip 格式。2018302114514.zip 。DS_Exp4 # superexercisebook.com