HzuMomoc


私信TA

用户名:932521665

访问量:33658

签 名:

记得在搬砖中多摸鱼!!!

等  级
排  名 87
经  验 8814
参赛次数 8
文章发表 68
年  龄 0
在职情况 在职
学  校 贺州学院
专  业

  自我简介:

解题思路:

例子解释:第一次搜索 V为0 ,有两个相通的顶点 为1 3  此时1为被访问递归调用自身

                第二次  v=1   无相通点  回到第一次的搜索状态

                v=0   此时 i=1 时 顶点1 已访问过,循环到3时,3未访问  递归调用

                第三次   v=3     两个相通点 0 2   因为0已经访问过。以此类推。

访问顺序如图:无标题.png


注意事项:

参考代码:

#include <bits/stdc++.h>
using namespace std;
const int Max=1000;
int G[Max][Max];//邻接矩阵图 
int vis[Max];
int n;
void dfsG(int v){
	printf("%d ",v);//访问数组 
	vis[v]=1;//标记访问 
    for(int i=0;i<n;i++){ 
    	if(G[v][i]==1 && vis[i]==0) //遍历当前位置是否有可访问的顶点 
			dfsG(i);
    }
}

int main ()
{

	cin>>n;
	memset(vis,0,sizeof vis);//初始化vis 
	for(int i=0;i<n;i++){//输入 
		for(int j=0;j<n;j++){
			scanf("%d",&G[i][j]);	
		}
	}
	dfsG(0);//从顶点0开始搜索 
	
        return 0;
	
	
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区