📄 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 + -