邻接矩阵创建无向图
时间: 2023-10-18 14:12:32 浏览: 62
邻接矩阵可以用来表示无向图,其中矩阵的行和列分别代表图中的节点,矩阵中的元素则表示相邻节点之间的连接情况。对于无向图,邻接矩阵是对称的,即矩阵中第i行第j列和第j行第i列的元素应该相同。
下面是一个创建无向图邻接矩阵的示例代码(假设图中有n个节点):
```
int adjMatrix[n][n]; // 定义邻接矩阵
// 初始化邻接矩阵,所有元素都为0
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
adjMatrix[i][j] = 0;
}
}
// 添加边,将相邻节点之间的元素标记为1
adjMatrix[0][1] = 1;
adjMatrix[1][0] = 1;
adjMatrix[1][2] = 1;
adjMatrix[2][1] = 1;
// ...
// 打印邻接矩阵
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
cout << adjMatrix[i][j] << " ";
}
cout << endl;
}
```
在上面的代码中,我们首先定义了一个n x n的二维数组,用于表示邻接矩阵。然后,我们初始化所有元素为0,并逐个添加边,将相邻节点之间的元素标记为1。最后,我们打印邻接矩阵,以便检查构建的图是否正确。
相关问题
用邻接矩阵创建无向图
要用邻接矩阵创建无向图,你需要先确定图中的顶点数量。然后,创建一个大小为顶点数量的二维矩阵,初始化所有元素为0。接下来,对于每条边 (u, v),将矩阵的第 u 行第 v 列和第 v 行第 u 列的元素设置为1,表示存在一条连接顶点 u 和 v 的边。
以下是一段示例代码,展示了如何用邻接矩阵创建无向图:
```python
# 定义顶点数量
num_vertices = 5
# 创建一个大小为 num_vertices x num_vertices 的邻接矩阵
adj_matrix = [[0] * num_vertices for _ in range(num_vertices)]
# 添加边 (u, v)
def add_edge(u, v):
adj_matrix[u][v] = 1
adj_matrix[v][u] = 1
# 示例:添加三条边
add_edge(0, 1)
add_edge(1, 2)
add_edge(2, 3)
# 打印邻接矩阵
for row in adj_matrix:
print(row)
```
输出结果为:
```
[0, 1, 0, 0, 0]
[1, 0, 1, 0, 0]
[0, 1, 0, 1, 0]
[0, 0, 1, 0, 0]
[0, 0, 0, 0, 0]
```
这个邻接矩阵表示了一个有 5 个顶点的无向图,其中的 1 表示存在边,0 表示不存在边。
c语言实现邻接矩阵创建无向图
以下是用 C 语言实现邻接矩阵创建无向图的基本代码:
```c
#include <stdio.h>
#define MAXV 100 // 最大顶点数
typedef struct {
int edges[MAXV][MAXV]; // 邻接矩阵
int n; // 顶点数
} Graph;
// 创建无向图
void createGraph(Graph *G) {
int i, j, k;
printf("请输入顶点数:");
scanf("%d", &G->n);
printf("请依次输入每条边所连接的两个顶点,以空格分隔(例如:1 2)\n");
while (1) {
scanf("%d %d", &i, &j);
if (i == 0 && j == 0) {
break;
}
G->edges[i][j] = 1;
G->edges[j][i] = 1;
}
}
int main() {
Graph G;
createGraph(&G);
printf("邻接矩阵:\n");
for (int i = 1; i <= G.n; i++) {
for (int j = 1; j <= G.n; j++) {
printf("%d ", G.edges[i][j]);
}
printf("\n");
}
return 0;
}
```
其中,`Graph` 结构体定义了一个邻接矩阵表示的图,其中 `n` 表示顶点数,`edges` 是一个二维数组,表示每条边的连接情况。`createGraph` 函数用于创建无向图,通过用户输入每条边所连接的两个顶点,并将其在邻接矩阵中标记为 1。最后,遍历邻接矩阵,将其输出以展示创建出的无向图。
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)