// graphmtx.h
#pragma once
#include<iostream>
using namespace std;
#define DEFAULT_VERTICES_SIZE 10 //默认最大顶点数
template< class T,class E>
class GraphMtx
{
public:
GraphMtx( int sz=DEFAULT_VERTICES_SIZE)
{
MaxVertices=sz>DEFAULT_VERTICES_SIZE ? sz : DEFAULT_VERTICES_SIZE;
VerticesList=new T[MaxVertices];
for(int i=0;i<MaxVertices;++i)
{
VerticesList[i]='#';
}
Edge=new E*[MaxVertices]; //开辟数组空间
for(int i=0;i<MaxVertices;++i)
{
Edge[i]=new E[MaxVertices];
}
for(int i=0;i<MaxVertices;++i)
{
for(int j=0;j<MaxVertices;++j)
{
Edge[i][j]=0; //边为0
}
}
numVertices=numEdges=0; //初始化一个空图
}
public:
bool InsertVertex(T v) //插入顶点
{
if(numVertices>=MaxVertices)
return false;
VerticesList[numVertices++]=v;
return true;
}
bool InsertEdge(T vertex1,T vertex2) //插入边
{
in
图的邻接矩阵表示及插入删除等操作
最新推荐文章于 2022-11-12 22:07:59 发布