图的实现方式与核心算法课件_第1页
图的实现方式与核心算法课件_第2页
图的实现方式与核心算法课件_第3页
图的实现方式与核心算法课件_第4页
图的实现方式与核心算法课件_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课时1图的实现方式与核心算法图的实现方式图的拓扑排序拓扑排序的实现方式图的最短路径总口课时15图的实现方式邻接矩阵法邻接链表法图的实现方式邻接矩阵法基本思想是开一个超大的数组V0V1V2V4V30123401234destinationsource图的实现方式234destination0123410010221224333邻接链表法核心思想是把每一个节点所指向的点存储起来sourceV00V1V2V4V3图的拓扑排序指的是对于一个有向无环图来说,排序所有的节点使得对于从节点 u 到节点 v 的每个有向边 uv,u 在排序中都在 v 之前什么是拓扑排序呢图的拓扑排序超市番茄买洗洗好的番茄切切好

2、的番茄鸡蛋打散打好的鸡蛋炒油、油番茄炒蛋、一个合法的拓扑排序必须使得被依赖的任务首先完成图的拓扑排序为什么拓扑排序只适用于有向无环图呢互联网人实战大学图的拓扑排序先有鸡还是先有蛋 (Chicken Egg Dilemma)是一个无法被拓扑排序的有环图 因为鸡依赖于蛋,蛋又依赖于鸡你无法把鸡排在蛋前面,也不能把蛋排在鸡的前面图的拓扑排序这里面隐含的一个有向无环图就是钱指向了你想做的事情那么我们就很容易的得出一个合理的拓扑排序,要把钱排在你想做的事情之前拓扑排序的实现方式有向图的入度指的是终止于一个节点的边的数量有向图的出度指的是始于一个节点的边的数量ABCD拓扑排序的实现方式卡恩于 1962 年

3、提出的算法,其实是贪婪算法的一种形式简单来说就是:假设 L 是存放口果的列表,我们先找到那些入度为零的节点把这些节点放到 L 中,因为这些节点没有任何的父节点然后把与这些节点相连的边从图中去掉,再寻找图中入度为零的节点对于新找到的这些入度为零的节点来说他们的父节点都已经在 L 中了,所以也可以放入 L重复上述操作,直到找不到入度为零的节点如果此时 L 中的元素个数和节点总数相同,则说明排序完成如果 L 中的元素个数和节点总数不同,则说明原图中存在环,无法进行拓扑排序拓扑排序的实现方式卡恩算法L Empty list that will contain the sorted elementsS

4、Set of all nodes with no incoming edgewhile S is non-empty do remove a node n from S add n to tail of Lfor each node m with an edge e from n to m doremove edge e from the graphif m has no other incoming edges then insert m into Sif graph has edges thenreturn error(graph has at least one cycle) elser

5、eturn L(a topologically sorted order)图的最短路径在一个有权重的图中,找到两个点之间权重之和最短的路径124359188201215图的最短路径怎样让计算机找到最短路径呢便是大名鼎鼎的 Dijkstra 算法图的最短路径最经典的 Dijkstra 算法原始版本仅适用于找到两个固定节点之间的最短路径后来更常见的变体固定了一个节点作为涌节点然后找到该节点到图中所有其他节点的最短路径从而产生一个最短路径树图的最短路径这个算法是通过为每个节点 v 保留当前为止所找到的从 s 到 v 的最短路径来工作的初始时:原点 s 的路径权重被赋为 0(即原点的实际最短路径 = 0)同时把所有其他节点的路径长度设为无穷大,即表示我们不知道任何通向这些节点的路径 口束时:dv 中存储的便是从 s 到 v 的最短路径,或者如果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论