- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
17图的遍历
深度优先搜索—非连通图 V1 V2 V4 V5 V3 V7 V6 V8 V1 V2 V4 V5 V3 V7 V6 V8 深度遍历: V1? V2 ?V4 ? V8 ?V5 ?V3 ?V6 ?V7 深度优先搜索—非连通图 void DFSTraverse(Graph G, int v) { for (v=0; vG.vexnum; ++v) visited[v] = FALSE; // 访问标志数组初始化 for (v=0; vG.vexnum; ++v) { if (!visited[v]) DFS(G, v); // 对尚未访问的顶点调用DFS } } * * 图的遍历 深度优先搜索 广度优先搜索 图的遍历 小结和作业 复习 课堂练习 复习-图的存储结构 B A C D F E 复习-图的存储结构 B A C D F E 0 1 2 3 4 5 A B C D E F 1 4 0 4 3 5 2 5 0 1 1 2 5 3 复习-图的存储结构 A B E C D 复习-图的存储结构 A B E C D 0 1 2 3 4 A B C D E 1 4 3 0 1 2 2 复习-图的存储结构 A B E C D 0 1 0 1 2 3 4 A B C D E 3 2 0 3 4 复习-图的存储结构 例 a e c b d 1 2 3 4 a c d b 5 e 1 2 1 4 3 4 3 2 3 5 5 2 ^ ^ ^ ^ ^ mark ivex ilink jvex jlink 复习-图的存储结构 A B C A B C 0 1 2 ∧ 0 1 2 1 ∧ 0 2 ∧ ∧ 2 0 ∧ ∧ 存储结构的比较 邻接矩阵可用于DG、UDG、DN、UDN 邻接表可用于DG、UDG、DN、UDN 十字链表用于DG和DN 邻接多重链表用于UDG和UDN 一、应用范围 存储结构的比较 邻接矩阵: n + n2 邻接表用于DG和DN:n + e; 用于UDG和UDN:n + 2e 十字链表: n + e 邻接多重链表: n + e 二、存储空间 存储结构的比较 三、对操作的支持 1、对顶点的访问 LocateVex(G, u); //返回u的位置 GetVex(G, v); // 返回 v 的值。 PutVex(G, v, value);// 对 v 赋值value。 都是对数组元素的操作,所以,完全一样 存储结构的比较 2、插入和删除顶点 都要对存放顶点数组元素的操作 但是对邻接矩阵,还要修改邻接矩阵 InsertVex(G, v); //在图G中增添新顶点v。 DeleteVex(G, v); // 删除G中顶点v及其相关的弧。 存储结构的比较 3、插入和删除弧 InsertArc(G, v, w); //在图G中增添新顶点v。 DeleteArc(G, v, w); // 删除G中顶点v及其相关的弧。 存储结构的比较 邻接矩阵:修改边v, w(以及w,v) 邻接表:无向图,修改两个顶点的链表;有向图,修改一个(或两个)顶点的链表 十字链表:涉及两个链表 多重邻接表:涉及两个链表 存储结构的比较 4、邻接点 FirstAdjVex(G, v); // 返回 v 的“第一个邻接点” 。若该顶点 //在 G 中没有邻接点,则返回“空”。 NextAdjVex(G, v, w); // 返回 v 的(相对于 w 的) “下一个邻接 // 点”。若 w 是 v 的最后一个邻接点,则 // 返回“空”。 存储结构的比较 邻接矩阵:第v行 邻接表:第v个链表 十字链表:第v个链表 多重邻接表:第v个链表 存储结构的比较 邻接矩阵:第v行 邻接表:第v个链表 十字链表:第v个链表 多重邻接表:第v个链表 4、邻接边 邻接点函数的实现 0 1 2 3 4 5 A B C D E F 1 4 0 4 3 5 2 5 0 1 1 2 5 3 FirstAdjVex(G, v); //返回第1个邻接点的位置,没有邻接点,返回-1。 NextAdjVex(G, v, w); //返回w后面的邻接点的位置。 邻接点函数的实现 int firstAdjVex(ALGragh G, int v){ p=G.vertices[
您可能关注的文档
- 12微观经济学第十二章:微观经济政策.ppt
- 12地图.ppt
- 12想别人没想到的6.ppt
- 12操作系统实用技术移动互联平台.ppt
- 12数列的概念练习+详细答案.doc
- 12收入费用和利润.ppt
- 12斜井跑车事故应急救援预案.doc
- 12施工安全管理.doc
- 12有机物的结构特点.ppt
- 12燃气的基本性质.ppt
- 浙江省温州市浙南名校联盟2025-2026学年高一上学期期中联考数学试题含解析.docx
- 26高考数学提分秘诀重难点34圆锥曲线中的定点、定值、定直线问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点35概率与统计的综合问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点31圆锥曲线中的切线与切点弦问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点30圆锥曲线中的弦长问题与长度和、差、商、积问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点29巧解圆锥曲线的离心率问题(举一反三专项训练)(全国通用)(含解析).docx
- 26高考数学提分秘诀重难点28直线与圆的综合(举一反三专项训练)(全国通用)(含解析).docx
- 寡核苷酸药物重复给药毒性研究技术指南.docx
- 重组溶瘤腺病毒生产质量管理标准.docx
- 26高考数学提分秘诀重难点27直线与圆中常考的最值与范围问题(举一反三专项训练)(全国通用)(含解析).docx
原创力文档


文档评论(0)