//#include #include #include "ALGraph.h" #include "LinkQueue.h" using namespace std; void DispMenu()图的连通信息 { cout<<"\n请选择你要的操作"< void DFS3(ALGraph
G,int v) // 连接表存储的图的深度优先遍历 { int w; ArcNode* p; visited[v]=true; // 做访问标志 cout<adjvex; // 未被访问过 if(!visited[w]) DFS3(G,w); // DFS遍历 p=p->nextarc; // 新启点,DFS遍历 } } template void ConnectVex(ALGraph
G) // 图的连通信息 { int k,num=0; // num连通分量计数 for(k=0;k int Maxdist( ALGraph
G, int v) { int i,w; ArcNode *p; LinkQueue Q; // 创建一个队列 InitQueue(Q); for(i=0;iadjvex; if(!visited[w]) // 未被访问 { visited[w]=true; // 做访问标志 EnQueue(Q,w); // 入队 } p=p->nextarc; // 下一个邻接点 } } return v; } bool visited[MAX_VEXNUM]={false}; void main() { char u,v; int k; ALGraph G; int choice; do { DispMenu(); cin>>choice; switch(choice) { case 1: // 创建无向图 CreateUDG(G); cout<>v; k=LocateVex(G,v); if(k==-1) cout<<"\n顶点"<