图的深度优先遍历

图的遍历比树的遍历更复杂,需要记住每个顶点是否被访问过以避免重复。深度优先搜索(DFS)类似于树的前序遍历,从任一未访问顶点开始,访问并标记该顶点,然后递归地访问其邻接点。DFS序列可能不唯一,取决于算法和图的存储结构。实现与储存结构无关的DFS涉及图遍历操作的抽象图类声明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        图的遍历:和树的遍历类似,图的遍历也是从某个顶点出发,沿着某条搜索路径对图中所有顶点各作一次访问。若给定的图是连通图,则从图中任一顶点出发顺着边可以访问到该图的所有顶点。然而,图的遍历比树的遍历要复杂的多,这是啥因为图中任一顶点都可能和其余顶点想邻接,故在访问了某个顶点之后,可能顺着某条回路回到了该顶点。为了避免重复访问同一个顶点,必须记住每个顶点是否被访问过。因此,可设置一个标记以避免被访问的结点被重读访问,除此之外,遍历图还要考虑俩个问题:一是指定遍历的首个访问顶点;二是要在多个邻接顶点之间约定一种访问次序。  


       图的深度优先遍历的原理:深度优先搜索遍历类似于树的前序遍历。假设给定图G的初态是所有顶点未曾访问过的,在G中任选一顶点vi为初始出发点,则深度优先搜索可定义如下:首先,访问出发点vi,并将其标记为已访问过,然后,依次从vi出发搜索vi的每一个邻接点vi,若未曾访问过,则以vi的新的出发点继续进行深度优先搜索。  对图进行深度优先搜索遍历时,按访问顶点的先后次序所得到的顶点序列,称为该图的深度优先搜索遍历序列。一个图的DFS序列不一定唯一,它与算法、图的存储所得到的DFS序列也不唯一,它取决于邻接表表示中边表结点的链接次序。

       实现与储存结构无关的深度优先遍历:

  1.声明实现图遍历操作的抽象图类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值