- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构 -深优先搜索
三、数据类型的定义 四、算法流程 五、递归算法见p169:算法7.4、7.5 练习 图G如下: 作业 图G如下: * 数据结构 * - + / a * b - e f c d 先序遍历: 中序遍历: - + a * b - c d / e f - + a * b - c d / e f 回顾:树的遍历 7.3 图的遍历 7.3.1 深度优先搜索 7.3.2 广度优先搜索 第七章 图 图的数据结构如何定义? 图的遍历算法的特点是什么? 图的遍历算法可否用线性结构 算法来实现?若可以实现,采 用哪种线性结构? 问题 7.3.1 深度优先搜索 一、原理:从图的某一顶点V0出发,访问此顶 点;然后依次从V0的未被访问的邻接点出 发,深度优先遍历图,直至图中所有和V0相 通的顶点都被访问到; 若此时图中尚有顶点未被访问,则另选图中 一个未被访问的顶点作起点,重复上述过 程,直至图中所有顶点都被访问为止。 假设成立的条件是什么? V0 V4 V3 V1 V2 V0 V2 V3 V1 V5 V4 G1 例: G2 V1 V2 V4 V5 V3 V7 V6 V8 例: 深度遍历:V1? V2 ?V4 ? V8 ?V5 ?V3 ?V6 ?V7 二、深度优先遍历过程 1 2 3 4 5 6 7 思考:遍历序列是否唯一?? V4 V1 V2 V5 V3 V7 V6 V8 深度遍历:V1? V3 ? V7 ? V6 ? V2 ? V5 ? V8 ? V4 V4 V1 ^ V5 V7 V6 ^ V1 V8 ^ V2 V8 V2 ^ V 5 V4 ^ V7 V3 ^ V6 V3 ^ firstarc vexdata V8 V7 V6 V5 V4 V3 V2 V1 V2 ^ adjvex nextarc V3 一一对应 ① ② ③ ④ ⑤ ⑥ ⑦ 数据类型如何定义?? 表节点的定义 Typedef struct ArcNode{ datatype adjvex Struct ArcNode *nextarc}ArcNode 头节点的定义 Typedef struct vnode{ vetertype vexdata ArcNode *firstarc} Vnode Array vex[] of vnode 算法特点?? 开始 数组初始化 v?点集 从第v个节点 递归遍历 已访问过 终止 是 是 否 否 访问v节点置状态位 返回上一轮递归 已访问过 W?点集 是 否 是 v邻接点W 是 否 否 算法要点: 1、设置标志位visited[v],并初始化为False 2、主循环从第一个节点开始遍历,每遍历一个节 点进行标志位的判定,即Vistited[v]为true 3、循环语句 for(w=FirstAdjVex(G,v);W?Vx w=Nextadjvex (G,v , W); ) V0 V2 V3 V1 V5 V4 1、画出邻接表表示的存储结构图 2、根据存储结构图写出深度优先遍历序列 V1 V2 V4 V5 V3 V7 V6 V8 例: 六、非递归算法(线性结构应用) 1 2 3 4 5 6 7 ^ …... 栈底 S S e p 进栈操作的实现: void Push_LS(LinkStack S, SElemType e) { p=(LinkStack)malloc(sizeof(SNode)); p–data=e; p–next=S; S=p; } Status Pop_LS(LinkStack S, SElemType e) { if(S==NULL) return ERROR; e=S-data; p=S; S=S-next; free(p); } S ^ …... 栈底 S p 退栈操作的实现: V0 V2 V3 V1 V5 V4 1、画出邻接表表示的存储结构图 2、根据存储结构图写出深度优先遍历序列 3、写出递归算法的断点位置 4、用栈的原理写出非递归算法,并画出数据元 素进栈出栈的顺序
您可能关注的文档
- 数学:1.1.《圆柱、圆锥、圆台、球、简单组合体的几何特征》课件(新人教版A版必修2).ppt
- 数学选修1--课件2.2.2.ppt
- 数学:1.2亿上数的认识课件(新人教版四年级上).ppt
- 数学软件Mateatica.ppt
- 数学模型在环境学中的应用.ppt
- 数学:1.1.ppt.ppt
- 数学课件:1--1 任意角.ppt
- 数学:1.3《形的性质》课件(苏科版九年级上).ppt
- 数学:13.5因式分解》课件(华东师大版八年级上).ppt
- 数学:2.1.《系统抽样》课件(新人教b版必修3).ppt
- 政治人教版7年级下册课件第1课第2框尊重他人是我的需要.ppt
- Unit5Whosedogisit?PartBReadandwrite(课件)-人教PEP版(2012)英语五年级下册.pptx
- 八下物理八年级物理下册第八章第三节摩擦力公开课教案教学设计课件测试卷练习卷课时训练练习公开课教案.ppt
- 八下物理八年级物理第十章第二节阿基米德原理课件(修改)公开课教案教学设计课件测试卷练习卷课时训练.ppt
- 八下物理83-大气压与人类生活公开课教案课件.ppt
- 6.3一元一次方程的应用(3)课件鲁教版(五四制)六年级数学下册.pptx
- 八下第8课经济体制改革课件(33张).ppt
- 八下历史-改革开放-课件公开课教案教学设计课件.ppt
- 八下物理初二物理人教版《动能和势能》课件(2)公开课教案教学设计课件测试卷练习卷课时训练练习公开.ppt
- 山东省师范大学附属中学高三第十一次模拟语文试题.doc
文档评论(0)