输入一组顶点,建立无向图的邻接矩阵。
时间: 2023-08-04 16:03:52 浏览: 177
假设我们要建立的无向图有n个顶点,可以使用一个n*n的矩阵来表示图中的边。如果两个顶点之间有边相连,则对应矩阵元素的值为1,否则为0。
以下是一个示例代码,假设我们要建立一个有5个顶点的无向图:
```python
n = 5
adj_matrix = [[0] * n for _ in range(n)]
# 假设输入的是边的信息,例如(1,2),(2,3),(3,4),(4,5),(5,1)
edges = [(1,2),(2,3),(3,4),(4,5),(5,1)]
# 根据边的信息更新邻接矩阵
for edge in edges:
start, end = edge
adj_matrix[start-1][end-1] = 1
adj_matrix[end-1][start-1] = 1
# 输出邻接矩阵
for row in adj_matrix:
print(row)
```
输出结果:
```
[0, 1, 0, 0, 1]
[1, 0, 1, 0, 0]
[0, 1, 0, 1, 0]
[0, 0, 1, 0, 1]
[1, 0, 0, 1, 0]
```
其中矩阵中第i行第j列的元素表示顶点i和顶点j之间是否有边相连,1表示相连,0表示不相连。
相关问题
输入一组顶点,建立无向图的邻接矩阵的代码
这里提供一个 Python 代码示例:
```python
# 输入顶点个数和边数
n = int(input("请输入顶点个数:"))
m = int(input("请输入边数:"))
# 初始化邻接矩阵
graph = [[0] * n for i in range(n)]
# 输入每条边的起点和终点,更新邻接矩阵
for i in range(m):
u, v = map(int, input("请输入第%d条边的起点和终点:" % (i+1)).split())
graph[u][v] = 1
graph[v][u] = 1
# 输出邻接矩阵
print("无向图的邻接矩阵为:")
for i in range(n):
for j in range(n):
print(graph[i][j], end=" ")
print()
```
其中,`n` 表示顶点个数,`m` 表示边数。首先初始化一个 `n` 行 `n` 列的邻接矩阵,然后输入每条边的起点和终点,将邻接矩阵对应位置的值设为1。最后输出邻接矩阵即可。
输入一组顶点,建立无向图的邻接矩阵的c++代码
以下是建立无向图邻接矩阵的C++代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n; // 顶点数
cin >> n;
vector<vector<int>> graph(n, vector<int>(n, 0)); // 初始化邻接矩阵
int m; // 边数
cin >> m;
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
graph[u][v] = graph[v][u] = 1; // 更新邻接矩阵
}
// 输出邻接矩阵
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << graph[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
其中,输入首先是顶点数n,然后是边数m,接下来m行每行两个整数表示一条边的两个顶点。最后输出邻接矩阵。
阅读全文