?? 7.13.c
字號(hào):
int ve[MAX_VERTEX_NUM]; /*每個(gè)頂點(diǎn)的最早發(fā)生時(shí)間*/
int TopoOrder(AdjList G,Stack *T)
/* G為有向網(wǎng),T為返回拓?fù)湫蛄械臈#琒為存放入度為0的頂點(diǎn)的棧*/
{
int count,i,j,k;
ArcNode *p;
int indegree[MAX_VERTEX_NUM]; /*各頂點(diǎn)入度數(shù)組*/
Stack S;
InitStack(T);
InitStack(&S); /*初始化棧T, S*/
FindID(G,indegree); /*求各個(gè)頂點(diǎn)的入度*/
for(i=0;i<G.vexnum;i++)
if(indegree[i]==0)
Push(&S,i);
count=0;
for(i=0;i<G.vexnum;i++)
ve[i]=0; /*初始化最早發(fā)生時(shí)間*/
while(!IsEmpty(&S))
{
Pop(&S,&j);
Push(T,j);
count++;
p=G.vertex[j].firstarc;
while(p!=NULL)
{
k=p->adjvex;
if(--indegree[k]==0)
Push(&S,k); /*若頂點(diǎn)的入度減為0,則入棧*/
if(ve[j]+p->Info.weight>ve[k])
ve[k]=ve[j]+p->Info.weight;
p=p->nextarc;
} /*while*/
} /*while*/
if(count<G.vexnum)
return(Error);
else
return(Ok);
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -