| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
ADSL如何秒变专线,公网IP盒子了解一下千里之行 始于足下
共有 506 人关注过本帖, 1 人收藏
标题:用邻接表实现图的深度优先搜索 望大家帮忙解释 最好能有注释 详细一点太感 ...
只看楼主 加入收藏
liuhanhuziha
Rank: 1
等 级:新手上路
帖 子: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
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-12-18
  得分:0 
2013-12-18 22:37
liuhanhuziha
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-12-18
  得分:0 
帮帮我吧
2013-12-18 23:45
菜鸟学习篇
Rank: 2
等 级:论坛游民
帖 子:8
专家分:39
注 册:2013-12-18
  得分: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







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028686 second(s), 8 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved