//拓扑排序找根,那就是找重心喽?
void Top(int n,int x){
memset(visit,0,sizeof(visit));
int head=0,tail=0;
for(int i=0;i<n;i++){
if(g[i][n]==1){//对于与n相连接的点,如果g[i][n]==1,那么说明是相连的
visit[i]=1;
level[tail]=0;
q[tail++]=i;
}
}
while(head<tail){
int now=q[head],l=level[head++];
for(int i=0;i<n;i++){
if(!visit[i]&&g[now][i]){
g[i][n]--;
if(g[i][n]<=1){
level[tail]=l+1;
q[tail++]=i;
visit[i]=1;
}
}
}
}
int l=level[tail-1],k=0;
for(int i=tail-1;level[i]==1;i--){
if(k==0){
one[x]=q[i];
k++;
}
else{
two[x]=q[i];
}
}
}
拓扑排序找到图的根,用于计算烷烃的个数
最新推荐文章于 2025-07-02 09:21:14 发布