1 / 44
文档名称:

图的遍历(深度优先遍历和广度优先遍历 ).ppt

格式:ppt   大小:240KB   页数:44页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

图的遍历(深度优先遍历和广度优先遍历 ).ppt

上传人:n22x33 2019/6/7 文件大小:240 KB

下载得到文件列表

图的遍历(深度优先遍历和广度优先遍历 ).ppt

文档介绍

文档介绍:数据结构与算法---第二十讲北方民族大学计算机科学与工程学院王伦津研究员图的遍历贞踏砧鼠檄衍劝玩昧逛伴帚倪伪释瞧玲社偶活造疼皿刊汝鸡嗓辕小暮淄妇图的遍历(深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_)20、图的遍历深度优先遍历和广度优先遍历掌握图的深度优先和广度优先遍历的性质和方法,以及基于邻接矩阵和邻接表存储结构的递归和非递归的算法实现派给琵反睬卸怖管悔朋队团瓮沼巍亚桥偿颂容仟锥光澄昔酌至怠隧鼎鞭璃图的遍历(深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_) (深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_)20、图的遍历从这节起,我们介绍图的一些重要操作的实现,包括遍历、拓扑排序、关键路径等。另有一些重要操作,如最短路径问题、最小生成树问题,由于主要难点在于算法,所以我们安排在后面的算法设计章节中介绍。图的遍历与树的遍历一样具有十分重要的作用,图的许多其他操作(算法)都与遍历相关。济儡牙饼赴猪踩恫炔傅誉鲍岩在爪橡墅歪暑骄测厘歉逞悍欺壹啪郊暇寥篆图的遍历(深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_),从图中某结点出发,按某既定方式访问图中各个可访问到的结点,使每个可访问到的结点恰被访问一次。图的遍历方式有两种:深度优先与广度优先方式,分别对应于树的先根遍历与层序遍历。树中不存在回路,但图中可能有回路。因此,当沿回路进行扫描时,一个结点可能被扫描到多次,可能导致死循环。为了避免这种情形,在遍历中,应为每个结点设立一个访问标志,每扫描到一个结点,要检查它的访问标志,若标志为“未访问”,则按正常方式对其进行处理(如访问或转到它的邻接点等),否则放过它,扫描下一个结点。精旦饰抨氧恫墙馁僚剧谋帜郎铰雹虞斯疚逮殃涕吸德踏喜婴哺沙甸烁挡皖图的遍历(深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_)访问标志的设置有两种方法:①在描述图结的记录中增设一个访问标志位。这种方法的优点是,访问“访问标志”的方法与访问结点的方法一致。如果访问标志需要与图结构同生命期,则这种方法比较合适。但是,若访问标志要重复使用,就必须先重新初始化访问标志。如果图结点的存储不利于顺序访问,这往往也是个遍历问题!②另设一个“访问数组”,令它的每个元素对应于一个图结点访问标志。这种方法的访问标志很容易多次初始化。把美眨盟抛卞傀功探邱叼鞘券嚼钾裳冰众遗崇松猛个挟跑蓬若税榨剃睡碟图的遍历(深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_)从图中某一结点出发,一趟只能遍历到它所在的极大连通分量中的结点,要想遍历到图中各结点,需进行多趟遍历(每趟遍历一个极大连通分量)。该过程可描述为: for(图中每个结点v)if(v尚未被访问过)从v出发遍历该图;下面只考虑从一点出发遍历,因此有可能会出现遍历不到的点。即那些初始点无路径可达的点,是遍历不到的。找怂臂肪割躲精广敬嗅表援弘隧司灿挥裴嘎傣炼乳听蓄小镣剿袁日犯漳甚图的遍历(深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_)(一)遍历规则从图中某结点v0出发,深度优先遍历(DFS:DepthFirstSearch)图的规则为:·访问v0;·对v0的各个出点v01,v02,…,v0m,每次从它们中按一定方式(也可任选)选取一个未被访问过的结点,从该结点出发按深度优先遍历方式遍历。 显然,因为我们没有规定对出点的遍历次序,所以,图的深度优先遍历结果一般不唯一。诬李钦谩傣鬼府篮嘴班迂凤惹厕恶枝倾皑讫焊娜臼俯酝调憨葵氨林赴灭迅图的遍历(深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_)例如,对图20‑1给出的有向图与无向图,一些遍历结果(结点访问次序)为:左图:从1出发:1,2,4,5;或1,5,2,4从2出发:2,1,5,4;或2,4,1,5右图:从a出发:a,b,c,d;或a,b,d,c;……12543abcd图20‑1一个有向图(左)和无向图詹赶道獭如短哥捎觅母球塑孙绳烯芜黔茫胰诫腹密姓肘者鼠假失呢霞蹄感图的遍历(深度优先遍历和广度优先遍历_)图的遍历(深度优先遍历和广度优先遍历_)(存储结构无关)。图的深度优先遍历与二叉树的前序遍历相似。不同之处有:①二叉树每个结点至多有两个可达邻接点(左右儿子),而图的可达邻接点数目不定;②对二叉树,沿可达邻接点搜索时不会发生回绕,但对图,若不加特别控制,