深度优先搜索c语言详解,深度优先搜索 — C语言版
思路:找一个入口结点,然后搜索该结点的第一个相邻结点,再搜索该相邻结点的第一个相邻结点,依次往下寻找 … … ,直到所有结点都被遍历到,算法结束,退出。
#include
#define MAX 100
typedef struct Graph{
int vn;
char vt[MAX];
int edge[MAX][MAX];
}df;
int size = 1;
int getindex(char tar,char sor[],int n);
void DFS(char v0,int n,int edge[][MAX],char vt[],int visited[]);
int main(){
int visited[10] = {0};
df dfs;
char ch = '\0';
scanf("%d",&dfs.vn);
ch = getchar();
int i = 0,j = 0;
for(i = 0;i < dfs.vn;i++){
scanf("%c",&dfs.vt[i]);
ch = getchar();
}
for(i = 0;i < dfs.vn;i++){
for(j = 0;j < dfs.vn;j++){
scanf("%d",&dfs.edge[i][j]);
}
}
printf("\n深度优先搜索:\n");
DFS('a',dfs.vn,dfs.edge,dfs.vt,visited);
return 0;
}
int getindex(char v0,char vt[],int n){
int i = 0;
for(i = 0;i < n;i++){
if(v0 == vt[i]) return i;
}
return -1;
}
void DFS(char v0,int n,int edge[][MAX],char vt[],int visited[]){
int i = 0,j = 0;
int index = 0;
index = getindex(v0,vt,n);
if (index == -1){
printf("结点不存在!");
return;
}
if (size == n) printf("%c",vt[index]);
else printf("%c ->",vt[index]);
size++;
visited[index] = 1;
for(i = 0;i < n;i++){
if(edge[index][i] == 1 && visited[i] == 0){
DFS(vt[i],n,edge,vt,visited);
break;
}
}
for(i = 0;i < n;i++){
if(edge[index][i] == 1 && visited[i] == 0){
DFS(vt[i],n,edge,vt,visited);
break;
}
}
}
深度优先搜索c语言详解,深度优先搜索 — C语言版相关推荐
- 24c02读程序C语言详解,24C02读写C语言程序
24C02读写操作程序.c >下面是本人编写的源程序,已经调试成功,下载就可以使用,程序编写的不是很规范 ,希望各位读者批评指正!!! >/************************ ...
- 深入浅出,详解深度优先搜索(DFS)
深度优先搜索 如果把深度优先搜索比作一个人的话,那么这个人是一个执着的人,甚至倔强,不把一条路走到底不会返回(回溯),虽然执着倔强,但是他不傻,如果在探索的途中发现这条路走下去没有希望他会提前返回(剪 ...
- android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...
Android ActionBar搜索功能用法详解 本文实例讲述了Android ActionBar搜索功能用法.分享给大家供大家参考,具体如下: 使用ActionBar SearchView时的注意 ...
- ag 搜索工具参数详解
ag 搜索工具参数详解 Ag 是类似ack, grep的工具,它来在文件中搜索相应关键字. 官方列出了几点选择它的理由: 它比ack还要快 (和grep不在一个数量级上) 它会忽略.gitignore ...
- 搜索框(SearchView)详解
搜索框(SearchView)详解 ONE Goal, ONE Passion ! 整理一下一些系统常用的小组件.先说说搜索框吧. SearchView是 搜索框组件,它可以让用户在文本框内输入文字, ...
- Linux如何全盘搜索MySQL文件_Linux上的文件搜索命令实例详解
locate 基础了解 locate命令搜索的后台数据库路径:/var/lib/mlocate/mlocate.db ls -hl /var/lib/mlocate total 1.2M -rw-r- ...
- java搜索代码_Java实现搜索功能代码详解
首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是get请求,并且是向当前页面发送get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...
- java 搜索_Java实现搜索功能代码详解
首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是Get请求,并且是向当前页面发送Get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...
- php搜索表格,table表格内对某列内容进行搜索筛选步骤详解
这次给大家带来table表格内对某列内容进行搜索筛选步骤详解,table表格内对某列内容进行搜索筛选的注意事项有哪些,下面就是实战案例,一起来看一下. 往往有些时候,我们把数据从数据库读取出来,显示到 ...
最新文章
- 重磅!Facebook更新PyTorch 1.1,打算跨GPU分割神经网络
- Centos 7 mysql Buffered warning: Changed limits: max_connections: 214 解决方法
- Javascript基础之-强制类型转换(一)
- Boole‘s,Doob‘s inequality,中心极限定理Central Limit Theorem,Kolmogorov extension theorem, Lebesgue‘s domin
- python用psf函数_python学习之-类的内置函数
- 【Level 08】U07 Mixed Feelings L1 Day trip
- 面试数据分析岗,怎么提升一倍成功率?让过来人给你支支招
- java中的URLConnection
- [转]快速矩阵快速幂
- UCDOS点阵字库提取
- SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
- 秉承极简美学设计:Polestar 2 登陆中国后会威胁到谁?
- 百度小程序百度信息流与自然搜索管理
- 云图说丨数字资产链:您的数字资产产权保护神
- Bootstrap4 徽章(Badges)
- (一)Activiti 数据库25张表——流程历史记录表18(ACT_HI_ATTACHMENT)
- 高德地图使用-监听地图缩放
- HTML5之placeholder属性
- 简报 | 俄罗斯为离岸地区制定特殊加密货币规则
- Aria2 使用手札(简易部署 + 快速进阶)
热门文章
- mysql的root用户密码_MySQL的root用户密码忘了 , 该怎么办?
- visual studio可以开发python吗_Visual Studio上开发Python六大功能
- 你眼中的嵌入式是什么样?
- 要不要出去找一份实习?
- 清华团队研发,首款国产电力电子仿真软件来啦~已捐赠哈工大、海工大、清华使用!...
- Verilog设计实现俄罗斯方块游戏
- dex运行linux,随着三星最新的DeX更新,更多的手机可以使用Linux
- java 死锁种类_用java写一个死锁
- c 语言注释格式化,linux 格式化C语言的源文件 命令:indent
- 易语言 取dns服务器,易语言自动修改内网IP地址和DNS