JLU -acm 代码库(校园版)----------Graph 图论

来源:互联网 发布:脸书注册总说网络错误 编辑:程序博客网 时间:2024/04/20 12:05

================================================

DAG的深度优先搜索标记

INIT:edge[  ] [  ]邻接矩阵;pre[  ],post[  ],tag置为0;

CALL:dfstag(i,n);pre/post:开始/结束时间

================================================

int edge[v] [v],pre[v],post[v],tag;

void dfstag (int cur,int n)

//vertex: 0~n-1

pre[cur] = ++tag;

for (int i=0;i<n;++i)

if (edge[cur] [i])

{

        if (0==pre [i])

{

           printf("Tree Edge!\n");

           dfstag(i,n);

}else{

       if( 0==post[i])

           printf("Back Edge!\n");

       else if (pre[i]>pre[cur])

           printf ("Down Edge!\n");

       else 

           printf("Cross Edge!\n");

         }  

}

post [cur] = ++ tag;


0 0
原创粉丝点击