数据结构实践项目——最短路径和拓扑序列

简介: 本文是针对[数据结构基础系列(7):图]的第2组实践例程。(程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…)0710 生成树的概念 0711 最小生成树的普里姆算法 0712 最小生成树的克鲁斯卡尔算法 0713 从一个顶点到其余各顶点的最短路径 0714 每对顶点之间的最短路径 0715 拓扑排序 0716 AOE网与关键路径

本文是针对[数据结构基础系列(7):图]的第2组实践例程。

(程序中graph.h是图存储结构的“算法库”中的头文件,详情请单击链接…

0710 生成树的概念
0711 最小生成树的普里姆算法
0712 最小生成树的克鲁斯卡尔算法
0713 从一个顶点到其余各顶点的最短路径
0714 每对顶点之间的最短路径
0715 拓扑排序
0716 AOE网与关键路径

纸上谈兵:“知原理”检验题目

1、针对下面的图1:
这里写图片描述(图1)
(1)写出图的邻接矩阵;
(2)按照Prim算法的思想,构造出最小生成树;
(3)对照Prim算法的实现,以上图作为参数g的值,用“画一画”的路线,走一遍算法,画出lowest[]和closest[]两个辅助数组的变化过程,“观察”算法执行的过程,从而达到掌握算法的目的;
(4)按照Kruskal算法的思想,构造出最小生成树;
(5)对照Kruskal算法的实现,以上图作为参数g的值,用“画一画”的路线,走一遍算法,画出E[]和vest[]两个辅助数组的变化过程,“观察”算法执行的过程,达到掌握算法的目的;
2、针对下面的图2
这里写图片描述(图2)
(1)写出图的邻接矩阵;
(2)按照Dijkstra算法的步骤,求出从顶点0到其余所有顶点的最短路径;
3、某乡有A、B、C、D四个村庄,图3中标识了各村之间的距离。现在要在某村庄修建中心俱乐部,请采用Floyd算法
这里写图片描述(图3)
(1)求出各村庄之间的最短路径;
(2)俱乐部的选址,应该使各村到俱乐部的距离之和最小,该选哪个村?
(3)写出各村到中心俱乐部的路径和路径长度。
4、针对下面的图4,尽可能多地写出其拓扑序列
这里写图片描述(图4)

上机实践

【项目 - 验证算法】运行并本周视频中所讲过的算法,观察结果并领会算法。
(1)Prim算法的验证(使用图1作为测试用例)
(2)Kruskal算法的验证(使用图1作为测试用例)
这里写图片描述(图1)
[参考解答: (1) (2)]

(3)Dijkstra算法的验证(使用图2作为测试用例)
这里写图片描述(图2)
[参考解答 ]

(4)Floyd算法验证(使用图3作为测试用例)
这里写图片描述(图3)
[参考解答 ]

(5)拓扑排序算法验证(使用图4作为测试用例)
这里写图片描述(图4)
[参考解答 ]

目录
相关文章
|
5月前
|
设计模式 算法 Java
【数据结构和算法】递增的三元子序列
给你一个整数数组nums,判断这个数组中是否存在长度为3的递增子序列。 如果存在这样的三元组下标(i, j, k)且满足i < j < k,使得nums[i] < nums[j] < nums[k],返回true;否则,返回false。
56 3
|
7月前
|
C++
剑指offer(C++)-JZ73:翻转单词序列(数据结构-队列 & 栈)
剑指offer(C++)-JZ73:翻转单词序列(数据结构-队列 & 栈)
|
7月前
|
C++
剑指offer(C++)-JZ31:栈的压入、弹出序列(数据结构-队列 & 栈)
剑指offer(C++)-JZ31:栈的压入、弹出序列(数据结构-队列 & 栈)
|
16天前
|
存储 算法 C语言
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
C语言进阶:顺序表(数据结构基础) (以通讯录项目为代码练习)
|
2月前
|
存储 算法 C语言
【C/C++ 数据结构 树】探索C/C++中的二叉树:从理论到实践
【C/C++ 数据结构 树】探索C/C++中的二叉树:从理论到实践
63 0
|
2月前
|
Web App开发 存储 网络协议
C/C++ 数据结构设计与应用(四):C++数据压缩与传输:从理论到实践的全景解析
C/C++ 数据结构设计与应用(四):C++数据压缩与传输:从理论到实践的全景解析
86 3
|
2月前
|
存储 数据处理 C++
C/C++ 数据结构设计与应用(三):运算符重载的策略与实践 (Operator Overloading Strategies and Practices)
C/C++ 数据结构设计与应用(三):运算符重载的策略与实践 (Operator Overloading Strategies and Practices)
23 0
|
3月前
|
存储 缓存 算法
【数据结构查找算法篇】----散列查找【实战项目】
【数据结构查找算法篇】----散列查找【实战项目】
43 10
|
3月前
|
机器学习/深度学习 算法 Java
【数据结构查找算法篇】----二分查找【实战项目】
【数据结构查找算法篇】----二分查找【实战项目】
28 1
|
3月前
|
存储 算法 Java
【数据结构查找算法篇】----线性查找【实战项目】
【数据结构查找算法篇】----线性查找【实战项目】
32 5