拓扑序列
typedof struct{
listnode data[size];
int count;
}graph;
void Toposort(graph &G){
int i,v,num=0;
arcnode *p;
int stack[size],top=-1;
for(i=0;i<G.count;i++)//G.count为度数
if(G.data[i].in==0)stack[++top]=i;
while(top!=-1){
v=stack[top--];//v出栈
cout<<G<data[v].vex<<",";
num++;
p=G.data[v].first;
while(p!=NULL){
G.data[p->adj].in--;
if(G.data[p——>adj].in==0)stack[++top]=p->adj;
p=p->next
}
}
`