1.0 头文件
#pragma once
/*
* 邻接矩阵存储图
*/
// 图的最大顶点数
const int MAX_VERTEX = 10;
typedef int DataType;
class MGraph
{
private:
// 存储顶点数据
DataType vertex[MAX_VERTEX];
// 存储邻接矩阵的
int arc[MAX_VERTEX][MAX_VERTEX];
// 邻接矩阵的顶点数和边数目
int vertexNum;
int arcNum;
public:
MGraph();
MGraph(DataType v[], int vertexNum, int arcNum);
~MGraph();
private:
// 输入图的邻接点
void inputGraph(int& i, int& j);
public:
// 深度优先遍历图
void DFSTraverse(int v);
// 广度优先遍历图
void BFSTraverse(int v);
// 显示一个图
void showGraph();
// 计算边的数目
int countGraphEdge();
// 顶点是否连接
bool isConnectVertex(int v1, int v2);
// 计算顶点的度
int countGraphDegree(int v);
};
2.0 源文件
#include "MGraph.h"
#include <iostream>
MGraph::MGraph(DataType v[], int vertexNum, int arcNum)
{
this->arcNum = arcNum;
this->vertexNum = vertexNum;
// 初始化顶点数
for (int i = 0; i < this->vertexNum;