| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 834 人关注过本帖
标题:请教一下tarjan中的问题
只看楼主 加入收藏
xuzc
Rank: 1
等 级:新手上路
帖 子:15
专家分:9
注 册:2016-9-13
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
请教一下tarjan中的问题
void add(int aa, int bb)//邻接表
{
    b[++cnt].e = bb;
    b[cnt].next = hh[aa];
    hh[aa] = cnt;
}
int tarjan(int k)
{
    int i;
    dfn[k] = low[k] = ++number;
    stack[++top] = k;
    d[k] = true;
    for(i = hh[k]; i != 0; i = b[i].next)
    {
        if(!dfn[b[i].e])
        {
            tarjan(b[i].e);
            low[k] = min(low[k], low[b[i].e]);//请教一下这行代码写的意思
        }
        else if(d[b[i].e] == true)
        {
            low[k] = min(low[k], dfn[b[i].e]);
            //我想问一下能不能写成low[k]=min(low[k],low[b[i].e]);顺便讲一下这行代码的意思。
        }
    }
    if(dfn[k] == low[k])
    {
        color[k] = ++num;
        while(1)
        {
            p[num]++;
            d[stack[top]] = false;
            color[stack[top--]] = num;
            if(stack[top + 1] == k)break;
        }
    }
    return 0;
}
发现网上好多博客之类的都没打这两行的注释。。。

[此贴子已经被作者于2016-9-16 17:48编辑过]

搜索更多相关主题的帖子: number 
2016-09-16 17:21
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:4 
min()函数,求最小值。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-09-17 17:23
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:4 
百度百科:http://baike.baidu.com/link?url=VTl4q3Yy3D58pfJ7IRxrlZS6ATYj7AOR10e4FQQ3eskQpgtnWh8ikUcOELK_Ey1pah_-B0CN6GeIb8ZY3GzyEK

逐行带注释。也有思路。不过我还没看懂



φ(゜▽゜*)♪
2016-09-18 00:12
快速回复:请教一下tarjan中的问题
数据加载中...
 
   



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

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