dfs怎么用,求C语言版的,麻烦举个例子

dfs怎么用,求C语言版的,麻烦举个例子,第1张

一般的DFS算法:

typedef struct

{

int all

int recorder[ALLIN][ALLIN]

}Matrix

int visited[ALLIN]

void DFS(Matrix data, int i,int num)

{

int *p

printf("%d",i)

visited[i]=1

p=data.recorder[i]

for(int j=0j<numj++)

{

if(*(p+j)==1 &&!visited[j])

DFS(data,j,num)

}

}

重复输出是因为

for(int

i

=

0

i

<

n

i

++)

dfs(0,i)

由于在dfs内部,已经对当前行进行过遍历,在主函数只需用调用一次dfs(0,0)即可

而当5的时候,为什么会出错,具体原因不清楚

但根据调试发现,无法处理对角线间隔多行的情况,特别是第二个输出就错了,问题在往上返回的过程中,左下角位置本来是-1,变成了0,这种情况应该是在恢复地图时错误

sys是system的缩写,就是系统的意思,sys是Windows的系统文件。如安装文件,日志文件,驱动文件,备份文件, *** 作如播放等文件,还有些垃圾文件等诸如此类。

dfsc.sys是驱动文件,

公司: Microsoft Corporation 

产品名称: Microsoft® Windows® Operating System 

文件版本: 6.1.7601.17514 

文件大小: 76.5KB 文件路径:C:\Windows\system32\ 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11596155.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存