邻接表转化成邻接矩阵
时间: 2023-12-21 14:32:30 浏览: 31
邻接表转化为邻接矩阵的算法思想如下:
1. 首先初始化邻接矩阵,将所有元素置为0。
2. 遍历邻接表,对于每个顶点vertices[i],依次遍历其边链表。
3. 若边链表中的边结点的值为j,则将邻接矩阵的第i行第j列的元素置为1。
4. 遍历完邻接表后,转换过程结束。
以下是一个示例代码,演示了邻接表转化为邻接矩阵的过程:
```c++
void table_convert_matrix(MGraph &G1, ALGraph G2) {
G1.arcnum = G2.arcnum;
G1.vexnum = G2.vexnum;
// 初始化邻接矩阵
for(int i = 1; i <= G1.vexnum; i++) {
for(int j = 1; j <= G1.vexnum; j++) {
G1.Edge[i][j] = 0;
}
}
ArcNode *p;
for(int i = 1; i <= G2.vexnum; i++) {
// 依次遍历各顶点表结点为头的边链表
p = G2.vertices[i].first;
// 取出顶点 i 的第一条出边
while(p) {
// 遍历边链表
G1.Edge[i][p->adjvex] = 1;
p = p->next; // 取出下一条出边
}
}
}
```