数据结构实验四:利用邻接矩阵创建无向图,并实现BFS和DFS遍历
1.实验目的
采用邻接矩阵或邻接表进行图的存储
分别完成图的深度优先和宽度优先搜索
2.无向图类
#ifndef graph_h
#define graph_h
#include<iostream>
#include<queue>
#include<stack>
#include<map>
using namespace std;
//利用邻接矩阵构造无向图,实现BFS和DFS遍历
class AMGraph{
char *vex;//存储顶点
int **arc;//邻接矩阵。 边的权值与顶点数据类型分别为int和char型
int vexNum, arcNum;//图的点数和边数
map<char, int>m; //实现顶点到坐标的映射
map<int, char>_m;//实现坐标到顶点的映射 如果顶点和权值均为Int型就不需要映射
public:
AMGraph(int _vexNum, int _arcNum);
void createUDN(); //创建无向图
void DFS(char ch);
void BFS(char ch);//从指定顶点出发遍历
};
AMGraph::AMGraph(int _vexnum, int _arcnum) :vexNum(_vexnum), arcNum(_arcnum) {
vex = new char[_vexnum];
arc = new int* [_vexnum];
for (int i = 0; i < _vexnum; ++i) {