无向图的邻接矩阵代码
时间: 2023-11-21 13:51:32 浏览: 89
好的,以下是无向图的邻接矩阵代码:
```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$ 的邻接矩阵,然后添加了边,最后输出了邻接矩阵。
相关问题
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)。
1.无向图采用邻接矩阵进行存储,完成以下操作 (1) 建立无向图的邻接矩阵存储 (2) 输出邻接矩阵 (3) 基于图邻接矩阵的深度优先遍历 (4) 基于图邻接矩阵的广度优先遍历
无向图使用邻接矩阵存储时,每个顶点用一个行和一个列对应,矩阵中的元素表示两个顶点之间是否存在边。以下是基于邻接矩阵进行操作的详细介绍:
1. **建立无向图的邻接矩阵存储**:
- 对于无向图,邻接矩阵是对称的。如果顶点A和B之间有边,则矩阵A[i][j]和A[j][i]都为1;没有边则都是0。
- 初始化一个二维数组,大小为顶点数乘以顶点数,然后根据图中实际的边关系填充矩阵。
2. **输出邻接矩阵**:
- 遍历整个矩阵,打印每个元素。由于矩阵是对称的,你可以只遍历上三角或下三角,以避免重复输出。
3. **基于图邻接矩阵的深度优先遍历(DFS)**:
- 从任意一个起点开始,设该顶点为当前节点(标记为已访问)。
- 遍历矩阵中对应的行或列,找到所有未访问的邻接节点。
- 对每个邻接节点递归地执行DFS。
- 递归结束后,移除当前节点的标记,回到上一个邻接节点。
4. **基于图邻接矩阵的广度优先遍历(BFS)**:
- 从任意一个起点开始,将该顶点放入队列中(标记为已访问)。
- 取出队首节点,将其所有未访问的邻接节点加入队列并标记为已访问。
- 重复此过程,直到队列为空。
- 在遍历时,记录路径信息,以便输出结果。
阅读全文