知识大全 图 - 图的遍历 - 深度优先遍历(三)
Posted 序列
篇首语:要须心地收汗马,孔孟行世目杲杲。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 图 - 图的遍历 - 深度优先遍历(三)相关的知识,希望对你有一定的参考价值。
深度优先遍历序列
对图进行深度优先遍历时 按访问顶点的先后次序得到的顶点序列称为该图的深度优先遍历序列 或简称为DFS序列
( )一个图的DFS序列不一定惟一
当从某顶点x出发搜索时 若x的邻接点有多个尚未访问过 则我们可任选一个访问之
( )源点和存储结构的内容均已确定的图的DFS序列惟一
① 邻接矩阵表示的图确定源点后 DFS序列惟一
DFSM算法中 当从v i 出发搜索时 是在邻接矩阵的第i行上从左至右选择下一个未曾访问过的邻接点作为新的出发点 若这样
的邻接点多于一个 则选中的总是序号较小的那一个
【例】对连通图G 用邻接矩阵表示时 以v 为初始出发点的 DFS遍历过程如下图(a)所示 具体算法的执行过程【 参见动
画演示 】 DFS序列是v v v v v v v v
>
②只有给出了邻接表的内容及初始出发点 才能惟一确定其DFS序列
邻接表作为给定图的存储结构时 其表示不惟一 因为邻接表上边表里的邻接点域的内容与建表时的输入次序相关
因此 只有给出了邻接表的内容及初始出发点 才能惟一确定其DFS序列
【例】连通图G 用邻接表表示时 以v 为初始出发点的 DFS算法的执行过程和DFS序列【 参见动画演示 】
( )栈在深度优先遍历算法中的作用
深度优先遍历过程中 后访问的顶点其邻接点被先访问 故在递归调用过程中使用栈(系统运行时刻栈)来保存已访问的顶点
算法分析
对于具有n个顶点和e条边的无向图或有向图 遍历算法DFSTraverse对图中每顶点至多调用一次DFS或DFSM 从DFSTraverse中调用
DFS(或DFSM)及DFS(或DFSM)内部递归调用自己的总次数为n
当访问某顶点v i 时 DFS(或DFSM)的时间主要耗费在从该顶点出发搜索它的所有邻接点上 用邻接矩阵表示图时 其搜索时间为
O(n);用邻接表表示图时 需搜索第i个边表上的所有结点 因此 对所有n个顶点访问 在邻接矩阵上共需检查n 个矩阵元素
在邻接表上需将边表中所有O(e)个结点检查一遍
所以 DFSTraverse的时间复杂度为O(n ) (调用DFSM)或 (n+e)(调用DFS)
cha138/Article/program/sjjg/201311/23835相关参考
深度优先遍历的递归算法 ()深度优先遍历算法 typedefenumFALSETRUEBoolean;//FALSE为TRUE为 Booleanvisited[MaxVertexNum];/
广度优先遍历(BreadthFirstTraversal) 广度优先遍历的递归定义 设图G的初态是所有顶点均未访问过在G中任选一顶点v为源点则广度优先遍历可以定义为首先访问出发点v接着依次访问
()邻接矩阵表示的图的广度优先搜索算法 voidBFSM(MGraph*Gintk) 以vk为源点对用邻接矩阵表示的图G进行广度优先搜索 intij; CirQueueQ; InitQu
图的遍历 图的遍历(TraversingGraph)从图中某一顶点出发访遍图中其余顶点且使每一个顶点仅被访问一次 图的遍历有两种方法深度优先搜索和广度优先搜索 深度优先遍历 深度优先遍
希赛教育计算机专业考研专业课辅导招生 希赛教育计算机专业考研专业课辅导视频 希赛教育计算机考研专业课在线测试系统 对演示中非连通图进行深度优先搜索遍历得到顶点的访问序列为 a→c→h→d→
生成树(SpanningTree)从连通图的任何一个顶点出发进行遍历遍历过程中经过的边加上图的所有顶点构成的子图称为图的生成树 深度优先生成树由深度优
(三)图的遍历 深度优先搜索 BooleanVisited[AX]; Status(*visitFunc)(intv); VoidDFSTrav
.对有五个结点ABCDE的图的邻接矩阵 ().画出逻辑图 ().画出图的十字链表存储 ().基于邻接矩阵写出图的深度广度优先遍历序列 ().计算图的关键路径【华南师范大学三(分)】 .何
希赛教育计算机专业考研专业课辅导招生 希赛教育计算机专业考研专业课辅导视频 希赛教育计算机考研专业课在线测试系统 将顶点v放在上方中央其余顶点按从v到该顶点的最短路径长度分别放在第和层上则图
.设G=(VE)以邻接表存储如图所示试画出图的深度优先和广度优先生成树【北京轻工业学院八(分)】 .对一个图进行遍历可以得到不同的遍历序列那么导致得到的遍历序列不唯一的因素有哪些?【北京航空航天