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//和文件名一致,将.换成_;前面加_。