5
HUEAK
0 0 2 3 0
0 0 0 7 4
2 0 0 0 0
3 7 0 0 1
0 4 0 1 0
H
----------------------------
HEAUK
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
int maps[105][105],vis[1005]={0},n;
char str,ch[1005];
void dfs(int tar)
{
cout<<ch[tar];
vis[tar]=1;
int i;
for(i=0;i<n;i++)
{
if(maps[tar][i]!=0 && vis[i]==0)
{
vis[i]=1;
dfs(i);
}
}
}
int main()
{
int i,j;
cin>>n;
cin>>ch;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
cin>>maps[i][j];
int len=strlen(ch);
cin>>str;
int tar;
for(i=0;i<len;i++)
{
if(ch[i]==str) tar=i;
}
dfs(tar);
return 0;
}
本文介绍了一个使用深度优先搜索(DFS)算法遍历图的过程。通过C++实现,该程序接收节点数量、节点间的连接权重及起始节点作为输入,并输出从指定起点可达的所有节点。代码展示了如何初始化邻接矩阵、进行深度优先遍历并打印路径。

2189

被折叠的 条评论
为什么被折叠?



