学习笔记: 图的遍历

图的遍历

图的遍历是从图中某个结点出发遍历图,访遍图中其余项点,并且使图中的每个顶点仅被访问一次的过程。

深度优先搜索

深度优先搜索基本思想:

  1. 从图中某个顶点V0出发,首先访问V0
  2. 找出刚访问过的顶点的第一个未被访问的邻接点,然后访问该结点。以该顶点为新顶点,重复此步骤,直到刚访问过的顶点没有未被访问的邻接点为止;
  3. 返回前一个访问过的且仍有未被访问的邻接点的顶点,找出该顶点的下一个未被访问的邻接点,访问该顶点。然后执行步骤2.

若是非连通图,则图中一定还有顶点未被访问,要从图中另选一个未被访问的顶点作为起始点,重复上述过程。

例如:

在这里插入图片描述

深度优先算法的实现过程:

  1. 访问出发点V0;
  2. 依次以V0的未被访问的邻接点为出发点,深度优先搜索图,直至图中所有与V0有路径相通的顶点都被访问。

对于非连通图,则图中一定还有顶点未被访问,要从图中另选一个未被访问的顶点作为起始点,重复上述深度优先搜索过程。

深度优先搜索代码实现

深度优先遍历V0所在的连通子图:

void DepthFristSearch(Graph g,int V0)
{
   
	visit(V0);
	visited[V0]=true;
	w=FirstAdjVertex(g,V0);  //V0的第一个邻接点
	while(w!=-1){
   
		if(!visited[w])
			DepthFristSearch(g,w);<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿小张的日常笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值