数据结构A第三次实验报告汇总.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告 (2014 / 2015学年 第 二 学期) 课程名称 数据结构A 实验名称 图的基本运算及飞机换乘次数最少问题 实验时间 年 月 日 指导单位 计算机学院计算机科学与技术系 指导教师 学生姓名 学院(系)管理学院 班级学号 专 业信息管理与信息系统 PAGE PAGE # 实验报告 实验名称 图的基本运算及飞机换乘次数最少问题 指导教师 陈雷 实验类型 设计 实验学时 2 实验时间 2 一、实验目的和要求 (1)图的基本运算 验证教材中关于在邻接矩阵和邻接表两种不冋存储结构上实现图的基本运算的算法。 在邻接矩阵存储结构上实现图的深度和广度优先遍历算法。 设计主函数,测试上述运算。 提示:扩充MGraph类,在扩充类上增加 DFS和BFS函数。 (2 )飞机最少换乘次数问题 ①设有n个城市,编号为0?n-1, m条航线的起点和终点由用户输入提供。寻找一条换乘次数 最少的线路方案。 提示:可以使用有向图表示城市间的航线。只要两城市间有航班,则图中这两点间存在一条权 为1的边。可以使用 Dijkstra算法实现。 思考:如果是城市公交车的最少换乘问题,将如何解决?假如希望使用类似的算法,则图中的 边如何设置? 要求: 掌握在图的邻接矩阵和邻接表存储结构实现图的基本运算的算法。 学习使用图算法解决应用问题的方法。 二、实验环境(实验设备) 中文五号木体,央文五号 Times new roma n子体,1.25倍行距 硬件:微型计算机 软件: Windows 操作系统、 Microsoft Visual C++6.0 三、实验原理及内容 1、类和类的层次结构 T Queue{abstra t} + virtual void EnQueue( T x)=0; + virtual void DeQueue()=0 + virtual bool lsEmpty() const=0 + virtual bool lsFull() const=0 + virtual T Fron t()=0 SeqQueue -int fron t,rear; -int MaxSize; -T *q; + SeqQueue() +~SeqQueue() + void En Queue( T x) + void DeQueue() + T Fron t() + bool IsEmpty() const + bool IsFull() const 父类: Queue SeqQueue 父类: Graph 子类: 继承关系 子类: LGraph 继承关系 Graph{abstract} #int n #int e +virtual ~Graph() +virtual ResultCode Insert(int u, int v, T w)=0 +virtual ResultCode Remove(int u, int v)=0 +virtual bool Exist(int u, int v)const=0 LGraph #ENodeT** a +LGraph( int mSize) +~LGraph() +ResultCode Insert(int u, int v, T w) +ResultCode Change(int u,int v,T w) +ResultCode Remove (int u, int v) + bool Exist( i nt u, int v)c onst + int Vertices() +void Output() ExtLGraph +ExtLGraph( int mSize):LGraphT(mSize) +void DFS(); +void BFS(); +void CallI nDegree( int* In Degree); +void TopoSort( int* order); + int Choose(int *d, bool* s); +void Dijkstra( int v,T* d, int* path); +void BetweenMinPath( int a,int b); -void DFS(int v, bool* visited); -void BFS(int v, bool* visited); 实验报告 实验报告 4、核心算法代码 (1)图的宽度优先遍历,使用邻接矩阵实现 void MGraphT::BFS(){ bool* visited = new boo I [n]; for(i nt i= 0; i n; i++) visited[i] = false; for(i nt i= 0; i n; i++) if(!visited[i]) BFS(i, vi

文档评论(0)

zhaoxiaoj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档