数据结构与C++算法设计案例教程赖俊峰第七模块课件教学.pptVIP

数据结构与C++算法设计案例教程赖俊峰第七模块课件教学.ppt

  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文档。上传文档
查看更多
数据结构与C++算法设计案例教程赖俊峰第七模块课件教学.ppt

模块七 图 1、图的概念 任务二 图的存储结构 子任务1 邻接矩阵法 1、邻接矩阵法的存储结构 2、邻接矩阵法的算法描述 3、邻接矩阵法的算法的c++实现 子任务2 邻接表和逆邻接表 1、邻接表和逆邻接表的概念 2、邻接表和逆邻接表的算法描述 3、邻接表和逆邻接表的算法的c++实现 子任务3 十字链表 1、十字链表的概念 2、十字链表的算法描述与c++实现 任务三 图的遍历算法 子任务1 图的深度遍历 1、深度遍历的概念 2、深度遍历的算法思想 3、深度遍历的算法描述与C++实现 子任务2 图的广度遍历 1、广度遍历的概念 2、广度遍历的算法思想 3、广度遍历的算法描述与C++实现 任务四 图的应用 子任务1 最小生成树 1、普里姆(prim)算法 Prim算法描述与C++实现: 2、克鲁斯卡尔(Kruskal)算法 Kruskal算法描述与C++实现: 子任务2 最短路径 1、 迪杰斯特拉算法的基本思想 2、迪杰斯特拉(Dijkstra)算法的实现 3、Dijkstra算法描述与C++实现 子任务3 拓扑排序 1、 拓扑排序的概念 2、有向图拓扑排序算法的基本步骤 3、拓扑排序算法的C++实现 学材小结 (1)用栈存储所有入得为0 的顶点,设置辅助数组s[20],l存储栈中的元素。 元素入栈时在数组的最后一位添加元素,出栈时删除数组的最后一位元素,用scnt来计算栈中元素的个数。 (2) 设置辅助数组rudu[20],存储个顶点的入度。入 拓扑排序 :设G=(V,E)是一个具有n个顶点的有向图,V中顶点的序列V1,V2,Vn称为一个拓扑序列,当且仅当该顶点序列满足下列条件:若在有向图G中,从顶点Vi到是j有一条路径,则在序列中顶点必须排在顶点V之前。找一个有向图的一个拓扑序列的过程称为拓扑排序。 可以证明:任何一个无环有向图,其全部顶点都可以排成一个拓扑序列。而且其拓扑序列不一定是唯一的。 度为0的顶点入栈,当栈不空时,令栈中的元素出栈,在屏幕上打印出栈的顶点,并对出栈的顶点用cnt计数。 (3)之后对出栈元素的每个邻接点的入度减1,若减1后的邻接点入度为0,则再将此 点入栈。 (4)重复上述(2)(3)两步,直到栈空为止,栈的出栈序列即为入得拓扑排序序列。 拓扑排序的求解过程(以图7-18为例): C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1--C2 (2) C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1 (1) 拓扑序列:C1--C2--C3--C4 (4) C5 C6 C7 C8 C9 C10 C11 C12 C6 C8 C4 C5 C7 C9 C10 C11 C12 拓扑序列:C1--C2--C3 (3) C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1--C2--C3--C4--C5 (5) C6 C8 C9 C10 C11 C12 拓扑序列: C1--C2--C3--C4--C5--C7 (6) C6 C7 C8 C9 C10 C11 C12 拓扑序列:C1--C2--C3--C4--C5 (5) C6 C8 C9 C10 C11 C12 拓扑序列: C1--C2--C3--C4--C5--C7 (6) C8 C12 拓扑序列:C1--C2--C3--C4--C5 --C7--C9--C10--C11--C6 (10) C12 C6 C8 拓扑序列:C1--C2--C3--C4--C5 --C7--C9--C10--C11 (9) C8 拓扑序列:C1--C2--C3--C4--C5--C7 --C9--C10--C11--C6--C12 (11) 拓扑序列:C1--C2--C3--C4--C5--C7--C9 --C10--C11--C6--C12--C8 (12) 拓扑排序的处理过程 #includeiostream using namespace std; //定义一个图 class Graph_Matrix { public: int n; //顶点个数 int Graph_M[20][20]; //顶点邻接矩阵 Graph

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档