C++实现图的深度优先搜索的代码如下:
#include <iostream>
#include <cstring>
using namespace std;
void search_DepthFirst(char *dataArray, int *edgeMetrix, char startdata, int n)//自定义深度优先搜索函数
/*dataArray用于存放顶点数据;edgeMetrix用于存放邻接矩阵;startdata表示起始访问点数据;n表示顶点总个数*/
{
bool flag[n] = {
0};//用flag标记相应顶点是否搜索过,值为0表示未搜索过,值为1表示已搜索过
int buf[n];//用栈结构暂时储存已访问过的顶点在顶点数组中的位置
int top = -1, i, j;//top为栈顶指针
for (i = 0; i < n; i++