无向图的邻接矩阵代码
时间: 2023-11-21 15:51:32 浏览: 48
好的,以下是无向图的邻接矩阵代码:
```python
n = 5 # 图中节点数
graph = [[0] * n for _ in range(n)] # 初始化邻接矩阵
# 添加边
graph[0][1] = 1
graph[1][0] = 1
graph[0][2] = 1
graph[2][0] = 1
graph[1][2] = 1
graph[2][1] = 1
graph[1][3] = 1
graph[3][1] = 1
graph[2][4] = 1
graph[4][2] = 1
# 输出邻接矩阵
for i in range(n):
for j in range(n):
print(graph[i][j], end=' ')
print()
```
以上代码中,我们以一个无向图为例,初始化了一个 $5 \times 5$ 的邻接矩阵,然后添加了边,最后输出了邻接矩阵。
相关问题
用c语言写一个无向图邻接矩阵代码
以下是用 C 语言实现一个无向图邻接矩阵的代码:
```c
#include <stdio.h>
#define MAX_NODE 100
int graph[MAX_NODE][MAX_NODE]; // 邻接矩阵
int n; // 节点个数
void init() {
n = 0;
for (int i = 0; i < MAX_NODE; ++i) {
for (int j = 0; j < MAX_NODE; ++j) {
graph[i][j] = 0;
}
}
}
void addEdge(int u, int v) {
graph[u][v] = 1;
graph[v][u] = 1; // 无向图需要将两个方向的边都加上
}
void printGraph() {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
printf("%d ", graph[i][j]);
}
printf("\n");
}
}
int main() {
init();
n = 5;
addEdge(0, 1);
addEdge(0, 4);
addEdge(1, 2);
addEdge(1, 3);
addEdge(1, 4);
addEdge(2, 3);
addEdge(3, 4);
printGraph();
return 0;
}
```
这个代码实现了一个简单的无向图,其中节点个数为 5,边的关系使用 addEdge 函数添加,最后使用 printGraph 函数打印出邻接矩阵。
matlab无向图的邻接矩阵代码
以下是matlab中生成无向图邻接矩阵的代码:
```matlab
% 生成一个无向图的邻接矩阵
n = 5; % 图中节点数
A = zeros(n); % 初始化邻接矩阵
A(1,2) = 1; A(2,1) = 1; % 添加边
A(2,3) = 1; A(3,2) = 1;
A(3,4) = 1; A(4,3) = 1;
A(4,5) = 1; A(5,4) = 1;
```
其中,n为图中节点数,A为邻接矩阵,A(i,j)表示节点i和节点j之间是否有边相连,1表示有,0表示没有。由于是无向图,因此邻接矩阵是关于对角线对称的,即A(i,j)=A(j,i)。