0
点赞
收藏
分享

微信扫一扫

Data Structures and Algorithms (English) - 6-13 Topological Sort(25 分)

黎轩的闲暇时光 2022-05-23 阅读 58


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:略。

AC 代码

bool TopSort( LGraph Graph, Vertex TopOrder[] )
{
PtrToAdjVNode e;
int top=0, cnt=0, in[Graph->Nv+10];
for(int i=0;i<Graph->Nv;i++) in[i]=0;
Vertex *sk;
sk=(Vertex *)malloc(Graph->Nv*sizeof(Vertex));

for(int i=0;i<Graph->Nv;i++)
{
for(e=Graph->G[i].FirstEdge; e; e=e->Next)
{
int k=e->AdjV;
in[k]++;
}
}

for(int i=0;i<Graph->Nv;i++)
if(in[i]==0) sk[++top]=i;

while(top!=0)
{
int tp=sk[top--];
TopOrder[cnt++]=tp;
for(e=Graph->G[tp].FirstEdge; e; e=e->Next)
{
int k=e->AdjV;
if(!(--in[k]))
sk[++top]=k;
}
}

if(cnt<Graph->Nv) return 0;
return 1;
}


举报

相关推荐

0 条评论