邻接矩阵新增一个定点
时间: 2023-12-21 07:30:29 浏览: 31
邻接矩阵是一种图的存储结构,其中矩阵中的每个元素表示两个顶点之间是否有边相连。邻接矩阵新增一个顶点需要进行以下步骤:
1. 将该顶点加入顶点向量中,即将该顶点的信息存储在顶点向量中。
2. 在邻接矩阵中添加一行一列,表示该顶点与其他顶点之间的关系。由于是无向图,因此需要在对称位置上都添加该顶点的信息,即在第i行第j列和第j行第i列都添加该顶点的信息,其中i和j分别表示该顶点在顶点向量中的位置。
下面是一个示例代码,假设我们要在一个无向无权图中添加一个名为V5的顶点:
```c
#define MAX_VERTEX_NUM 20
typedef char VertexType;
typedef int AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct{
VertexType vexs[MAX_VERTEX_NUM];//顶点向量
AdjMatrix arcs;//邻接矩阵(地址)
int vexnum,arcnum;//图的当前顶点数和弧数
}MGraph;
void addVertex(MGraph *G, VertexType v){
if(G->vexnum == MAX_VERTEX_NUM){
printf("Graph is full.\n");
return;
}
G->vexs[G->vexnum] = v; // 将该顶点加入顶点向量
for(int i = 0; i <= G->vexnum; i++){
G->arcs[i][G->vexnum] = 0; // 在邻接矩阵中添加一列
G->arcs[G->vexnum][i] = 0; // 在邻接矩阵中添加一行
}
G->vexnum++; // 更新顶点数
}
```