思路:找一个入口结点,然后搜索该结点的第一个相邻结点,再搜索该相邻结点的第一个相邻结点,依次往下寻找 … … ,直到所有结点都被遍历到,算法结束,退出。

#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语言版相关推荐

  1. 24c02读程序C语言详解,24C02读写C语言程序

    24C02读写操作程序.c >下面是本人编写的源程序,已经调试成功,下载就可以使用,程序编写的不是很规范 ,希望各位读者批评指正!!! >/************************ ...

  2. 深入浅出,详解深度优先搜索(DFS)

    深度优先搜索 如果把深度优先搜索比作一个人的话,那么这个人是一个执着的人,甚至倔强,不把一条路走到底不会返回(回溯),虽然执着倔强,但是他不傻,如果在探索的途中发现这条路走下去没有希望他会提前返回(剪 ...

  3. android搜索功能xml,Android_Android ActionBar搜索功能用法详解,本文实例讲述了Android ActionBar - phpStudy...

    Android ActionBar搜索功能用法详解 本文实例讲述了Android ActionBar搜索功能用法.分享给大家供大家参考,具体如下: 使用ActionBar SearchView时的注意 ...

  4. ag 搜索工具参数详解

    ag 搜索工具参数详解 Ag 是类似ack, grep的工具,它来在文件中搜索相应关键字. 官方列出了几点选择它的理由: 它比ack还要快 (和grep不在一个数量级上) 它会忽略.gitignore ...

  5. 搜索框(SearchView)详解

    搜索框(SearchView)详解 ONE Goal, ONE Passion ! 整理一下一些系统常用的小组件.先说说搜索框吧. SearchView是 搜索框组件,它可以让用户在文本框内输入文字, ...

  6. Linux如何全盘搜索MySQL文件_Linux上的文件搜索命令实例详解

    locate 基础了解 locate命令搜索的后台数据库路径:/var/lib/mlocate/mlocate.db ls -hl /var/lib/mlocate total 1.2M -rw-r- ...

  7. java搜索代码_Java实现搜索功能代码详解

    首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是get请求,并且是向当前页面发送get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...

  8. java 搜索_Java实现搜索功能代码详解

    首先,我们要清楚搜索框中根据关键字进行条件搜索发送的是Get请求,并且是向当前页面发送Get请求 //示例代码 请求路径为当前页面路径 "/product" 当我们要实现多条件搜索 ...

  9. php搜索表格,table表格内对某列内容进行搜索筛选步骤详解

    这次给大家带来table表格内对某列内容进行搜索筛选步骤详解,table表格内对某列内容进行搜索筛选的注意事项有哪些,下面就是实战案例,一起来看一下. 往往有些时候,我们把数据从数据库读取出来,显示到 ...

最新文章

  1. 重磅!Facebook更新PyTorch 1.1,打算跨GPU分割神经网络
  2. Centos 7 mysql Buffered warning: Changed limits: max_connections: 214 解决方法
  3. Javascript基础之-强制类型转换(一)
  4. Boole‘s,Doob‘s inequality,中心极限定理Central Limit Theorem,Kolmogorov extension theorem, Lebesgue‘s domin
  5. python用psf函数_python学习之-类的内置函数
  6. 【Level 08】U07 Mixed Feelings L1 Day trip
  7. 面试数据分析岗,怎么提升一倍成功率?让过来人给你支支招
  8. java中的URLConnection
  9. [转]快速矩阵快速幂
  10. UCDOS点阵字库提取
  11. SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame
  12. 秉承极简美学设计:Polestar 2 登陆中国后会威胁到谁?
  13. 百度小程序百度信息流与自然搜索管理
  14. 云图说丨数字资产链:您的数字资产产权保护神
  15. Bootstrap4 徽章(Badges)
  16. (一)Activiti 数据库25张表——流程历史记录表18(ACT_HI_ATTACHMENT)
  17. 高德地图使用-监听地图缩放
  18. HTML5之placeholder属性
  19. 简报 | 俄罗斯为离岸地区制定特殊加密货币规则
  20. Aria2 使用手札(简易部署 + 快速进阶)

热门文章

  1. mysql的root用户密码_MySQL的root用户密码忘了 , 该怎么办?
  2. visual studio可以开发python吗_Visual Studio上开发Python六大功能
  3. 你眼中的嵌入式是什么样?
  4. 要不要出去找一份实习?
  5. 清华团队研发,首款国产电力电子仿真软件来啦~已捐赠哈工大、海工大、清华使用!...
  6. Verilog设计实现俄罗斯方块游戏
  7. dex运行linux,随着三星最新的DeX更新,更多的手机可以使用Linux
  8. java 死锁种类_用java写一个死锁
  9. c 语言注释格式化,linux 格式化C语言的源文件 命令:indent
  10. 易语言 取dns服务器,易语言自动修改内网IP地址和DNS