实验四:无向图最短路径搜索

本文介绍了一项实验,旨在通过Dijkstra算法在图中寻找两点间的最短路径。实验中,地图以校内建筑为节点,用C语言实现,要求遵循特定编码规范。实验涉及图的存储、头文件的使用,以及迪杰斯特拉算法的详细步骤。最终,代码能够处理命令行输入的起点和终点,输出最短路径长度和路径详情。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.实验目的

熟练掌握图的操作,掌握 Dijkstra 算法的原理。

2.实验要求

输入:通过命令行参数输入起点和终点的位置名称。

输出:   (1)命令行参数不正确输出ERROR_01;

(2)获取最短路径失败时输出ERROR_02;

(3)获取最短路径成功时输出路径长度。

实际地图

1 右图为校内知名建筑物示意平面图(其中“传送门”用于增加网络复杂度),以边表示建筑物间的路径,各条路径上方的数字表示路径长度。      

2 针对该图进行构建数据结构和算法,通过命令行参数输入任意两建筑物的名称,可查询建筑物间的最短路径长度,并输出最短路径。

代码质量要求:

1、优选C语言,禁止直接调用C++ STL库;

2、除循环变量外,其它变量命名使用有明确含义的单词或缩写,不建议使用拼音;

3、禁止出现魔鬼数字;                                        4、添加必要的程序注释;

5、统一代码格式,例如:{}和空行;                    6、变量初始化,不要依赖默认赋值;

7、入参检查,“外部输入输入不可靠”,指针判空(一级指针、二级指针……),循环变量上下限;

8、malloc与free配对;                                       9、尽量少用全局变量;

10、编译错误解决,从前往后处理,提示出错的行不一定是错误的根因;

3.实验原理

图的存储和头文件的引入:

为了使得代码可以被重复使用,即代码被二次利用时只需要更改图的模式识别代码,同时改变宏定义之中的最大次数,本次将图的文件和宏定义的部分单独的写成一个头文件,在书写主程序时对他进行引用即可。

#ifndef      _COMMON_H//和文件名一致,将.换成_;前面加_。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值