文章
2
粉丝
40
获赞
1
访问
398
(1)判别是否有唯一的拓扑序列,就是不断选取入度为0的点,若存在且该入度为0的点唯一,则有唯一的归并序列
bool check(MGraph G){
int visit[MAXV];
for(int i=0;i<MAXV;i++){
visit[i]=0;
}
for(int i=0;i<MAXV;){
bool one=1; //遍历一次表,如果入度为0的点只有一个,即sum为1,则序列唯一,one为k
int sum=0;
for(int j=0;j<MAXV;j++){
int flag=0; //遍历一轮第j列,如果全部元素都为0,则代表入度为0,此时sum++;
for(int k=0;k<MAXV;k++){
if(G.Edge[k][j]==1&&visit[j]==0){
flag=1;
break;
}
}
if(flag==1) {sum++; one=k}
}
if (sum==1){
visit[k]==1;
}else{
return 0;
}
}
return 1;
}
(2)
登录后发布评论
暂无评论,来抢沙发