図の隣接行列表示のC++クラス実装
1267 ワード
任意の抽象データ型(Abstract Data Type)は3要素で構成され、名前、データ・オブジェクトの集合操作セットである.図のデータ構造の名前はGraph(図)で、データオブジェクトセットは空でない有限頂点セットと有限エッジセットからなり、操作セットには挿入頂点、挿入エッジなどが含まれます.教材の上で図の実現形式に対して主に2種類を紹介した:隣接行列と隣接表、本文は臨街行列の表示図を採用して、初歩的に簡単な図類を実現して、図を作成して、辺を挿入して、図を印刷するなどの操作を行うことができます.
//graphadjcencymatrix.h
#ifndef GRAPHADJCENCYMATRIX
#define GRAPHADJCENCYMATRIX
#include
const int MaxVertexNum=100;
typedef int Vertex;
typedef int Weight;
typedef char DataType;
struct Edge
{
Vertex v1;
Vertex v2;
Weight w;
};
class GraphAdjMat
{
private:
int VertexNum;
int EdgeNum;
int Weight[MaxVertexNum][MaxVertexNum];
DataType Data[MaxVertexNum];
public:
GraphAdjMat();
~GraphAdjMat(){}
void InsertEdge(Edge);
void BuildGraph();
void Print();
};
GraphAdjMat::GraphAdjMat()
{
VertexNum=0;
EdgeNum=0;
for(int i=0;i>VertexNum;
std::cout<>EdgeNum;
std::cout<>a>>b>>c;
Edge first={a,b,c};
InsertEdge(first);
}
}
void GraphAdjMat::Print()
{
int i,j;
for(i=0;i