文章
92
粉丝
68
获赞
0
访问
11.2k
(1)求出所有节点入度和出度,进行一轮判断,计算所有未访问过的入度为零的点,并记录本轮入度为零的点总个数。
如果总个数等于0则返回0;如果大于1,则返回1,如果等于1则把该节点标记为已访问,并把以它为起点的节点的入度减一,继续下一轮判断。
(2)
int in[MAXV]={0}, out[MAXV]={0}, visited[MAXV]={0};
void calcDegrees(MGraph G)
{
for(int i=0;i<G.numVertices;i++)
{
for(int k=0;k<G.numVertices;k++)
{
if(G.Edge[ i ][ j ] )
{in[ j ]+=1;out[ i ]+=1;}
}
}
}
int uniquely(MGraph G)
{
int n = 0;
int pos =0;
for(int i=0;i<G.numVertices;i++)
{
if( !visited[i] && in[ i ] == 0) { n++; pos= i;}
}
if(n==0) return 0...
登录后发布评论
暂无评论,来抢沙发