搜索
编程论坛
→
开发语言
→
『 数据结构与算法 』
→ 用邻接表实现图的深度优先搜索 望大家帮忙解释 最好能有注释 详细一点太感谢了
标题:
用邻接表实现图的深度优先搜索 望大家帮忙解释 最好能有注释 详细一点太感 ...
只看楼主
liuhanhuziha
等 级:
新手上路
帖 子:3
专家分:0
注 册:2013-12-18
结帖率:
0
楼主
已结贴
√
问题点数:20 回复次数:3
用邻接表实现图的深度优先搜索 望大家帮忙解释 最好能有注释 详细一点太感谢了
void dfs1(int i)
{ link *p; visit(head[i]) ; //输出访问顶点
visted[i]=1; //全局数组访问标记置为1表示已访问
p=head[i].link;
while (p!=NULL) {
if (!visited[p->adjvex])
dfs1(p->adjvex); p=p->next;
}
}
我想了很长时间感觉理解的还是很混乱啊
求大家帮忙
搜索更多相关主题的帖子:
visit
最好
2013-12-18 22:35
liuhanhuziha
等 级:
新手上路
帖 子:3
专家分:0
注 册:2013-12-18
第
2
楼
得分:0
2013-12-18 22:37
liuhanhuziha
等 级:
新手上路
帖 子:3
专家分:0
注 册:2013-12-18
第
3
楼
得分:0
帮帮我吧
2013-12-18 23:45
菜鸟学习篇
等 级:
论坛游民
帖 子:8
专家分:39
注 册:2013-12-18
第
4
楼
得分:20
首先你要知道深度优先搜索的提前 要有一个邻接链表也就是你这里所指的*P。
visted[i] 如果为1表示已经访问,在某些书里成为灰色,如果为0表示白色,也就是未访问。
p=head[i].link; 表示邻接链表的某一个顶点。
while (p!=NULL) 如果当前某个顶点不为空,也就是他有边,有邻接点。
if (!visited[p->adjvex]) 如果该邻接点还未标记,则以该点为起点继续开始下一轮的搜索。
p=p->next; 顶点的下一条边
我觉得这个代码是不全的 其中我们还要有时间戳,用两次时间戳来寻找 发现时间和完成时间,以便寻找对短边。
推荐你看 算法导论22章 基本的图算法 写的相当明白
2013-12-19 22:08
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-425380-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.806358 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved