数据结构课程设计

发布时间:2023年12月21日

计算机科学与技术系

《数据结构课程设计》评分表

设计题目

39. 如下图所示,编写可视化算法将从顶点v能到达的最短路径长度为k的所有顶

点标记为红色(最短路径以路径上的边数计算)。

成绩

?

  • 内容

编写可视化算法将从顶点v能到达的最短路径长度为k的所有顶

点标记为红色(最短路径以路径上的边数计算)。

二、任务和要求

要求:
编写可视化算法将从顶点v能到达的最短路径长度为k的所有顶

点标记为红色(最短路径以路径上的边数计算)。
具体实现步骤:

在vs2017和Qt配置好的环境下创建一个Qt应用程序,并引入相关的Qt库。定义图的节点结构,包含值和左右子节点指针。实现一个函数,根据给定顶点和最短路径长度得到可以得到的顶点。在Qt的图形场景中,使用图形项和图形线条来表示。在界面中展示图的可视化效果。

序号

评 ?价 ?项 ?目

评 ???分

满分

得分

1

实验报告内容充实,调理清晰,算法设计阐述的清楚。

20

2

实验报告图表齐全、格式规范,质量高。

20

3

算法设计与算法应用能力。

20

4

程序测试用例设计全面,对算法的各种不同情况进行测试。

20

5

程序代码质量高,代码可读性好。

20

累计得分

注:(1)成绩评定 ?采用百分制。

  1. 问题描述与分析

问题描述:编写可视化算法将从顶点v能到达的最短路径长度为k的所有顶

点标记为红色(最短路径以路径上的边数计算)

分析:该题目具有不确定的起始顶点v和最短路径长度k,需要先通过代码实现该图,然后输入顶点和最短路径长度,通过dijkstra算法求最短路径长度最后将所得到的结果顶点标红。

2.具体设计过程

2.1设计思路

从输入的顶点开始进行最短路径计算,根据输入的最短路径长度k得到结果顶点,将结果通过qt展示并将所得顶点进行标红处理

2.2 程序设计流程图

(流程图 +?说明)

选择k的值(1到7之间)→输入顶点→依次寻找相邻的节点(不重复)→将所得到的节点标红。

2.3?函数实现说明

此处对程序中的一些关键函数进行说明,指明函数的功能、函数的参数、输入数据的格式以及要求、输出等做详细说明。

class?point节点对象
paintf::inter_nun()获取k的值
paintf::inter_point()获取顶点的值(使用lineEdit->text()获取QString类型的输入节点,之后使用其成员函数转为char格式)(用char类型存储)
auto?init[this](){}?lambda表达式,输入整个图的各节点连接关系。
calculate()使用dijkstra算法根据输入节点与步数计算出所有结果
paint::draw()根据函数calculuate()的结果改变各节点的颜色

3.?程序运行说明

输入格式
输入顶点:字母(小写)格式。(使用正则表达式筛选)
选择k的值:选择(使用skinBox)
输出:
将结果节点变红。

5.结论和心得

这次的作业我探索了很多,请教和学习了很多。就本题而言我们通过编写可视化算法将从顶点v能到达的最短路径长度为k的所有顶点标记为红色(最短路径以路径上的边数计算)。并将其可视化展示出来。在这个过程中,我们使用了class?point节点对象paintf::inter_nun()获取k的值paintf::inter_point()获取顶点的值(使用lineEdit->text()获取QString类型的输入节点,之后使用其成员函数转为char格式)(用char类型存储)auto?init[this](){}?lambda表达式,输入整个图的各节点连接关系。calculate()使用dijkstra算法根据输入节点与步数计算出所有结果paint::draw()根据函数calculuate()的结果改变各节点的颜色,。最后通过图形化框架展示了图的标红顶点。通过解决这个问题,我对图的构建和可视化有了更深入的理解。

文章来源:https://blog.csdn.net/zzzzzyliu/article/details/135127651
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。