深度优先搜索(Depth_First Search)遍历类似于树的先根遍历,是树的先根遍历的推广。 运用邻接矩阵存储的数据结构写出的深度优先遍历算法如下: #include <malloc.h> #include <iostream> using namespace std; #define INFINITY 32767 #define MAX_VEX 50 //最大顶点个数 #define OK 1 #define FALSE 0 #define TRUE 1 #define ERROR -1 bool *visited; //动态分配访问标志数组 //图的邻接矩阵存储结构 typedef struct { char *vexs; //动态分配空间存储顶点向量 int arcs[MAX_VEX][MAX_VEX]; //邻接矩阵 int vexnum, arcnum; //图的当前定点数和弧数 }Graph; //图G中查找顶点c的位置 int LocateVex(Graph G, char c) { for(int i = 0; i < G.vexnum; ++i) { if(G.vexs[i] == c) return i; } return ERROR; } //创建无向网 void CreateUDN(Graph &G){ //采用数组(邻接矩阵)表示法,构造无向网G cout << "请输入定点数和弧数:"; cin >> G.vexnum >> G.arcnum; cout << "请输入" << G.vexnum << "个顶点" << endl; G.vexs = (char *) malloc((G.vex