算法与数据结构程序设计实验报告校园导游咨询.docVIP

  • 64
  • 0
  • 约5.73千字
  • 约 9页
  • 2018-02-20 发布于重庆
  • 举报

算法与数据结构程序设计实验报告校园导游咨询.doc

算法与数据结构程序设计实验报告校园导游咨询

算 法 与 数 据 结 构 课 程 设 计 报 告 题 目: 校园导游咨询 班 级: 学 号: 姓 名: 指导教师: 成 绩: 2012年 1 月 6 日 题目 校园导游咨询 (1)基本要求: ① 设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。 ② 为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 ③ 为来访客人提供图中任意景点相关信息的查询。 (2)测试数据:由读者根据实际情况指定。 (3)实现提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。 设计思想 1.首先手动给校园图赋上相关信息(景点名称、代号、简介),路径及路径长度。得到一个模拟的校园平面图: 2.用邻接矩阵存储校园图: 得出邻接矩阵: 1 2 3 4 5 6 7 8 9 10 0 12 38 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 1 12 0 ∞ 21 ∞ ∞ ∞ ∞ ∞ 46 2 38 ∞ 0 ∞ 28 ∞ ∞ ∞ ∞ ∞ 3 60 21 20 0 ∞ ∞ 22 15 ∞ ∞ 4 ∞ ∞ 28 ∞ 0 ∞ ∞ ∞ ∞ ∞ 5 ∞ ∞ ∞ ∞ 36 0 40 ∞ ∞ ∞ 6 ∞ ∞ 18 22 ∞ 40 0 ∞ ∞ ∞ 7 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 21 ∞ 8 ∞ ∞ ∞ 15 ∞ 20 ∞ 21 0 ∞ 9 ∞ 46 ∞ ∞ ∞ ∞ ∞ ∞ 50 0 10 3. 用数据结构知识创建校园图 (1)先定义节点个数N,边的值(cost),节点(景点名称、景点信息),邻接点,边,顶点向量,当前顶点数和边数。 (2)节点和边的相关信息都弄好了后,校园图也就创建好了。 4.利用introduce函数来设计景点介绍,并利用switch(){ case 1:case2:…}语句给10个节点赋上相应的名称,给各节点添加相应的介绍信息。 5.用shortestdistance函数来求任意两景点之间的最短路径。 6. 用floyed函数求两个景点的最短路径。 7.用main函数来输出结果:用switch语句分别输出,查找景点相关信息时调用introduce函数;要查找任意两景点之间的最短路径时,先输入你目前所在的位置,再输入你的目的地,最后调用shortestdistance函数。主函数主要是调用这三个函数,实现上述三个功能。 算法和数据结构描述 /*定义符号常量*/ #define INT_MAX 10000??#define n 10 /*定义全局变量*/ int cost[n][n];/* 边的值*/? ?int shortest[n][n];/* 两点间的最短距离*/ int path[n][n];/* 经过的景点*/ /*自定义函数原型说明*/ void introduce();? 景点介绍 int shortestdistance();?? 要查找的两景点的最短距离 void floyed();?? 用floyed算法求两个景点的最短路径 void display(int i,int j);?? 打印两个景点的路径及最短距离 三、软件结构图及流程图 软件结构图即函数调用图 如下图 流程图即一般流程图 测试结果 分析与探讨 1. 时间复杂度分析:该程序中涉及了Floyd-Warshall 算法时间复杂度O(n^3),只要有存下邻接矩阵的空间,时间一般没问题,并且不必担心负权边的问题,这个算法通过考虑最佳子路径来得到最佳路径。Floyd-Warshall 算法从任意一条单边路径开始。所有两点之间的距离是边的权,或者无穷大,如果两点之间没有边相连。对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比己知的路径更短。如果是更新它。广度优先搜索广度优先搜索按照从起点到其他点的路径的长度,从短到

文档评论(0)

1亿VIP精品文档

相关文档