程序代码: while(!StackEmpty(&S))
{
pop(&S,i); // 这里栈空了未跳出循环 改为: if(!pop(&S, i)) break;
printf("(%d)%-12s",i,G.vex[i].cloth);
count++;
for(p=G.arcs[i];p;p=p->nextarc)
{
k=p->adj;
if(!(--indegree[k])) push(&S,k);
}
}
if(count<G.vexnum) return false;
else return true;
int FindInDegree(ALGraph G,int indegree[]) /*求入度的函数*/
{
int i,j;
for(i=0;i<10;++i)
indegree[i]=0;
for(i=0;i<G.vexnum;++i)
for(j=0;j<G.vexnum;++j)
if(G.arcs[j][i].adj==1)
++indegree[i];
return indegree[10]; // 这里下标越界
}









