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