?? p272.cpp
字號:
#include "iostream.h"#include "queue.h"#include "p267E.cpp" template <class NameType, class DistType> void Graph<NameType, DistType>::BFS ( int v ) { //從頂點v出發, 以廣度優先的次序橫向搜索圖, 算法中使用了一個隊列。 int *visited = new int[NumVertices]; //visited記錄頂點是否訪問過 for ( int i=0; i<NumVertices; i++ ) visited[i] = 0; //初始化 cout << GetValue (v) << ' '; visited[v] = 1; //首先訪問頂點v, 做已訪問標記 Queue<int> q; //q是實現分層訪問的隊列 q.EnQueue (v); //頂點v進隊列 while ( !q.IsEmpty ( ) ) { v = q.DeQueue ( ); //從隊列中退出頂點v int w = GetFirstNeighbor (v); //找頂點v的第一個鄰接頂點 while ( w != -1 ) { //w是v的鄰接頂點 if ( !visited[w] ) { //若未訪問過 cout << GetValue (w) << ' '; visited[w] = 1; //訪問頂點w q.EnQueue (w); //頂點w進隊列 } w = GetNextNeighbor (v, w); //找頂點v的下一個鄰接頂點 } } delete [ ] visited; }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -