哈工大数据结构试验3图形结构的运用.docVIP

哈工大数据结构试验3图形结构的运用.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈工大数据结构试验3图形结构的运用

哈尔滨工业大学计算机科学与技术学院 实验报告 课程名称:数据结构与算法 课程类型:必修 实验项目名称:图型结构及其应用 图的存储结构的建立与遍历(搜索) 姓名:胡明 设计成绩 报告成绩 指导老师 实验目的 (1)通过本实验,掌握建立邻接矩阵和邻接表的方法; (2)掌握邻接表和邻接矩阵的是深度优先递归和非递归算法,广度优先搜索算法; (3)通过本实验,学会运用文件的读入和写出; 实验要求及实验环境 实验要求: (1)能够建立(有向和无向)图的邻接矩阵和邻接表存储结构; (2)能够在邻接矩阵和邻接表存储结构上对(有向和无向)图进行深度优先(递归和非递归都要求)和广度优先搜索; (3)能够存储和显示相应的搜索结果(深度优先或广度优先生成森林(或生成树)、深度优先或广度优先序列和编号); (4)以文件形式输入图的顶点和边,并显示相应的结果。要求顶点不少于10个,边不少于13个 (5) 软件功能结构安排合理,界面友好,便于使用 2、实验环境:带有Codeblocks的电脑 三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系) 1、逻辑设计 (1)邻接矩阵的建立算法 1.确定图的顶点个数n和边数e; 2.输入顶点信息存储在一维数组vertex中; 3.初始化邻接矩阵; 4.依次输入每条边存储在邻接矩阵edge中; 4.1 输入边依附的两个顶点的序号i, j; 4.2 将邻接矩阵的第i行第j列的元素值置为1; 4.3 将邻接矩阵的第j行第i列的元素值置为1。 邻接表的建立算法 1. 确定图的顶点个数和边的个数; 2. 建立顶点表: 2.1 输入顶点信息; 2.2 初始化该顶点的边表; 3. 依次输入边的信息并存储在边表中; 3.1 输入边所依附的两个顶点的序号tail和head和权值w; 3.2 生成邻接点序号为head的边表结点p; 3.3 设置边表结点p; 3.4 将结点p插入到第tail个边表的头部; 邻接矩阵的深度优先递归算 1.访问源元素标记为访问; 2.遍历所有的和源元素相关的元素,如果为没有被访问,递归的搜索该顶点; 邻接矩阵的深度优先非递归算法 1.栈的初始化; 2.将源元素压栈; 3循环到栈空 3.1出栈 3.2如果出栈的元素没有被访问过,访问,标记; 3.2历和出栈元素有关系的顶点而且没有被访问,压栈; (5)邻接矩阵的广度优先非递归算法 1 . 初始化队列Q; 2. 访问顶点v; visited [v]=1; 顶点v入队Q; 3. while (队列Q非空) 3.1 v=队列Q的队头元素出队; 3.2 w=顶点v的第一个邻接点; 3.3 while (w存在) 3.3.1 如果w 未被访问,则 访问顶点w; visited[w]=1; 顶点w入队列Q; 3.3.2 w=顶点v的下一个邻接点; 邻接表的深度优先递归算法 1.访问第源元素标记为访问; 2.遍历所有的和源元素相关的元素,如果为被访问,递归的搜索该顶点; 邻接表的深度优先非递归算法 1.建立空栈,第一个元素进栈; 2.循环到栈空 2.1出栈 2.2如果出栈的元素没有访问,访问,标记为已经访问; 2.3遍历和出栈元素有关系的顶点而且没有被访问,压栈; (8)邻接表的广度优先非递归算法 1 . 初始化队列Q; 2. 访问顶点v; visited [v]=1; 顶点v入队Q;

文档评论(0)

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

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

1亿VIP精品文档

相关文档