*功能:输出图中顶点 i 的数据信息
*输出:图中顶点 i 的数据信息
*后置条件:图保持不变
*/
template <class T>
void MGraph<T>::GetVex(int i,T v[MaxSize]) //取顶点 i
{ //假设源点是第 0 个顶点,即顶
点序号是 0
v[i]=vertex[i];
if (i>vertexNum) throw "位置"; //顶点 i 不存在则抛出异常
else
cout<<v[i]<<"\n"; //返回顶点 i
}
/*
*前置条件:图已存在
*输 入:顶点 name,位置 num
*功 能:在图中 num 位置插入一个顶点 name
*输 出:如果插入不成功,抛出异常
*后置条件:如果插入成功,图中增加了一个顶点
*/
template <class T>
void MGraph<T>::InsertVex(int num,T name) //在图中插入一个顶点,其编号
为 i,值为 value
{ //假设源点是第 0 个顶点,即顶
点序号是 0
if ( num<0|| num>vertexNum) throw "位置"; //如果 num 输入不正确抛出异常
int row; //行
int col; //列
int numv; //最后一个顶点所在的位置
numv = vertexNum-1;
if(num>-1) //num 存在
vertexNum++; //顶点数加 1
for(int i=numv;i>num-1;i--) //i 从最后一个顶点的下一个位
置开始循环
vertex[i]=vertex[i-1]; //把从 num 位置的顶点到最后一
个顶点均向后移一位
vertex[num]=name; //把要插入的顶点的值放在 num
位置上
for(row=numv;row>=0;row--) //把从 num 列到最后一列的元
素均向下移一列
{
for(col=numv;col>=num;col--)
arc[row][col+1]=arc[row][col];