基于深度优先搜索的两顶点路径存在与否的判断
#include<iostream> #include<string> #include<cstring> using namespace std; #define MaxSize 100 using namespace std; typedef struct ArcNode { int adjvex; //该边所指向的结点的位置(也就是编号) struct ArcNode *nextarc; //指向下一条边的指针 int info; // }ArcNode; typedef struct { char data; //顶点信息 ArcNode *firstarc; //指向第一条边的指针 }VNode; typedef struct { VNode adjlist[MaxSize]; int n, e; //顶点数、边数 }AGraph; //图的邻接表类型 int visit[MaxSize]; int Locate(AGraph *AG, char c) { for (int i = 0; i < AG->n; i++) { if (AG->adjlist[i].data == c) return i; } } void DFS(AGraph *G, int v) { ArcNode *p; visit[v] = 1; //置标志位1代表已访问 p = G->adjlist