|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 数据结构与算法 』
→ 用邻接表实现图的深度优先搜索 望大家帮忙解释 最好能有注释 详细一点太感谢了
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
506
人关注过本帖,
1
人收藏
标题:
用邻接表实现图的深度优先搜索 望大家帮忙解释 最好能有注释 详细一点太感 ...
只看楼主
加入收藏
liuhanhuziha
等 级:
新手上路
帖 子:3
专家分:0
注 册:2013-12-18
结帖率:
0
楼主
收藏
(1)
已结贴
√
问题点数: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
快速回复:
用邻接表实现图的深度优先搜索 望大家帮忙解释 最好能有注释 详细一点 ...
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.027129 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved