📄 p271.cpp
字号:
#include "iostream.h"#include "p267E.cpp" template <class NameType, class DistType> void Graph< NameType, DistType>::DFS ( ) { //对连通图进行深度优先搜索的主过程 int *visited = new int [NumVertices]; //创建辅助数组 for ( int i=0; i<NumVertices; i++ ) visited [i] = 0; //辅助数组初始化 for ( i=0; i<NumVertices; i++) if (!visited[i]) DFS (i ,visited); //从顶点0开始深度优先搜索 delete [ ] visited; }; template <class NameType, class DistType> void Graph< NameType, DistType>::DFS ( const int v, int visited [ ] ) { //子过程 //从顶点位置v出发, 以深度优先的次序访问所有可读入的尚未访问过的顶点。算法中用到一个辅助数组 // visited, 对已访问过的顶点作访问标记。 cout << GetValue (v) << ' '; //访问该顶点的数据 visited[v] = 1; //访问标志改为已访问过 int w = GetFirstNeighbor (v); //找顶点v的第一个邻接顶点w while ( w != -1 ) { //有邻接顶点 if ( !visited[w] ) DFS ( w, visited ); //若未访问过, 从w递归访问 w = GetNextNeighbor ( v, w ); //找顶点v的下一个邻接顶点 } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -