?? p294.cpp
字號(hào):
#include "p292.cpp"
#include "iostream.h"
template <class NameType, class DistType>
void AOVGraph<NameType,DistType>::TopologicalSort ( )
{
//對(duì)n個(gè)頂點(diǎn)的AOV網(wǎng)進(jìn)行拓?fù)渑判颉op是入度為零頂點(diǎn)棧的棧頂指針。
int top = -1;
for ( int i=0; i<NumVertices; i++ ) //建立入度為零頂點(diǎn)的鏈棧
{
if ( count[i] == 0 )
{ count[i] = top; top = i; }; //進(jìn)棧運(yùn)算
}
for ( i=0; i<NumVertices; i++ )
if ( top == -1 )
{ cout << "Network has a cycle" << endl;
return; }
else
{
int j = top; top = count[top]; //一個(gè)入度為零的頂點(diǎn)出棧
cout << j << endl; //輸出頂點(diǎn)j
Edge<NameType,DistType> * l = NodeTable[j].adj; //頂點(diǎn)j的邊鏈表的鏈頭指針
while ( l )
{ // l ( 0, 有出邊
int k = l->dest; //取該邊的終點(diǎn)k, 該頂點(diǎn)的入度減1
if ( --count[k] == 0 ) {
count[k] = top; top = k; } //入度減至0的頂點(diǎn)進(jìn)入度為零的頂點(diǎn)棧
l = l->link; // 取j的下一條出邊
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -