一、深度优先搜索的大致思路:
如下图所示:沿着一条路走到底,然后再折回来沿着另一条路继续走到底....
二、本次也是以图的邻接矩阵的数据结构来测试,如下数据结构
三、代码和测试结果
#include <iostream>
#include <stack>
using namespace std;
#define MAX_VERTEXS (20)
class Vertex //顶点
{
public:
Vertex(char lab) :label(lab)
{
isVisited = false;
}
//private:
char label;
bool isVisited; //true:访问过; flase:未被访问过
};
class Graph //图
{
public:
Graph();
~Graph();
void addVertex(char lab); //添加顶点
void addEdge(int start, int end); //添加边
void printMatrix();
void showVertex(int index);
void DFS();
private:
Vertex * vertexList[MAX_VERTEXS]; //用来保存加入进来的顶点
int nVertexs; //当前顶点的个数
int adjMat[