c++ 图结构邻接矩阵简单实现
#ifndef GRAPHMAT_H
#define GRAPHMAT_H
#include <iostream>
using namespace std;
#define MAX_VERTEX_NUM 20 //图的最大顶点
#define INF 10000 //最大极值
typedef enum{ DG, DN, UDG, UDN } GraphKind; //图的种类
typedef int TYPE; //数据的类型
class GraphMat
{
public:
GraphMat(GraphKind k);
~GraphMat();
private:
/*
*图的邻接矩阵一般需要6个信息
*1、图的种类。枚举类型:有向图DG,有向网DN,无向图UDG,无向网UDN。
*2、图的顶点个数
*3、顶点的数据值数组GraphMat(GraphKind k) :kind(k), vex_num(0);
*4、图的边(弧)个数
*5、邻接矩阵。对图:用1或0表示两顶点是否相邻;对网:表示两顶点之间的权值。
*6、遍历标志
*/
GraphKind kind;
int vex_num;
TYPE vexs[MAX_VERTEX_NUM];
int arc_num;
int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
bool is_trav[MAX_VERTEX_NUM];
public: