1 / 3
文档名称:

强连通 分支。.doc

格式:doc   页数:3
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

强连通 分支。.doc

上传人:企业资源 2012/1/4 文件大小:0 KB

下载得到文件列表

强连通 分支。.doc

文档介绍

文档介绍:#include<>
#define N 8
int time;
int bi,pi;
int b[N],p[N];
void Gtree(int Gt[N][N]){//GtתÖÃ
int G[N][N];
for(int i=0;i<N;i++)
for(int j=0;j<N;j++)
G[j][i]=Gt[i][j];
for(int t=0;t<N;t++)
for(int r=0;r<N;r++)
Gt[t][r]=G[t][r];
}
int ADJ(int u,int Gt[N][N],int adj[N]){//uµÄÁÚµã
int L=0;
for(int o=0;o<N;o++)adj[o]=-1;
for(int i=0;i<N;i++)
if(Gt[u][i]==1){
adj[L]=i;
L++;
}
return L;
}
//¶ÔuÉîËÑ
void DFS_visit(int u,char color[N],char father[N],int d[N],int f[N],int Gt[N][N],char Gn[N]){
color[u]='g';
time++;
d[u]=time;
b[bi]=u;//
bi++;
int ul[N];
int L=ADJ(u,Gt,ul);
for(int i=0;i<L;i++)
if(color[ul[i]]=='w'){
father[ul[i]]=Gn[u];
DFS_visit(ul[i],color,father,d,f,Gt,Gn);
}
color[u]='b';
time++;
f[u]=time;
p[pi]=u;//
pi++;
}
//Ç¿Á¬Í¨·ÖÁ¿
void ponents(int Gt[N][N],char Gn[N]){
char color[N],father[N];
int d[N],f[N];
for(int i=0;i<N;i++){
d[i]=f[i]=-1;
father[i]='*';
color[i]='w';
}
time=bi=pi=0;//
for(int u=0;u<N;u++)
if(color[u]=='w')
DFS_visit(u,color,father,d,f,Gt,Gn);
time=bi=pi=0;//
Gtree(Gt);
int pp[N];
for(int c=0;c<N;c++){
color[c]='w';
d[c]=f[c]=-1;
father[c]='*';
pp[c]=p[c];
}
for(int v=N-1;v>=0;v--)
if(color[pp[v]]=='w')
DFS_visit(pp[v],color,father,d,f,Gt,Gn);
int tre=1,t,r;
r=0;
for(t=0;t<N;t++)
if(father[t]=='*')
r++;
printf("Ç¿ÁªÍ