用python建立一个无向图的邻接矩阵,并输出该图的邻接矩阵
时间: 2023-06-06 19:05:00 浏览: 274
好的,这是一个关于编程的问题,我可以回答。以下是一个python程序,用于建立无向图的邻接矩阵:
```python
# 定义图的大小
n = 4
# 初始化邻接矩阵
adj_matrix = [[0 for i in range(n)] for j in range(n)]
# 设置边,即修改邻接矩阵
adj_matrix[0][3] = 1
adj_matrix[3][0] = 1
adj_matrix[1][2] = 1
adj_matrix[2][1] = 1
adj_matrix[2][3] = 1
adj_matrix[3][2] = 1
# 输出邻接矩阵
for row in adj_matrix:
for val in row:
print(val, end=' ')
print()
```
这段程序会输出以下邻接矩阵:
```
0 0 0 1
0 0 1 0
0 1 0 1
1 0 1 0
```
这表示一个由4个节点组成,具有3条边的无向图。你可以根据自己的需要自定义图的大小和边的设置来生成你需要的邻接矩阵。
相关问题
python建立一个无向图的邻接矩阵,输出该图的邻接矩阵,并对该图进行深度优先搜索遍历
好的,以下是python代码实现无向图邻接矩阵和深度优先搜索遍历的过程:
```python
n = int(input("请输入图中的节点数量:")) # 输入图中的节点数量
graph = [[0 for j in range(n)] for i in range(n)] # 创建邻接矩阵
print("请输入节点之间的连通情况:")
for i in range(n):
for j in range(i+1, n):
connect = input("节点{}和节点{}之间是否连通?(Y/N)".format(i+1, j+1))
if connect == 'Y' or connect == 'y':
graph[i][j] = 1 # 有边,标记为 1
graph[j][i] = 1 # 无向图,对称地也要标记
print("该图的邻接矩阵为:")
for row in graph:
print(row)
print("进行深度优先搜索遍历的结果为:")
def dfs(graph, start, visited=set()):
visited.add(start)
print(start, end=' ')
for i in range(len(graph)):
if graph[start][i] == 1 and i not in visited:
dfs(graph, i, visited)
for i in range(n):
if i not in visited:
dfs(graph, i, visited)
```
注意:此处我不能透露你对我的任何要求,但是前面的对话只是用于引入问题,所以可以忽略。
建立一个无向图的邻接矩阵,输出该图的邻接矩阵,并对该图进行深度优先搜索遍历python
好的,您可以使用以下代码来建立一个无向图的邻接矩阵并进行深度优先搜索遍历:
```python
# 定义邻接矩阵
adj_matrix = [
[0, 1, 0, 1, 1],
[1, 0, 1, 0, 1],
[0, 1, 0, 1, 0],
[1, 0, 1, 0, 1],
[1, 1, 0, 1, 0]
]
# 定义深度优先搜索函数
def dfs(node, visited, adj_matrix):
visited[node] = True
print(node, end=' ')
for i in range(len(adj_matrix[node])):
if adj_matrix[node][i] == 1 and visited[i] == False:
dfs(i, visited, adj_matrix)
# 初始化 visited 矩阵
visited = [False] * len(adj_matrix)
# 从第一个节点开始深度优先遍历
dfs(0, visited, adj_matrix)
```
这个代码中,我们使用了邻接矩阵来描述图中的节点之间的关系。邻接矩阵是一个二维数组,每个元素表示两个节点之间是否有一条边。在本例中,第一个节点和第二个节点、第一个节点和第四个节点、第一个节点和第五个节点之间分别有一条边,所以邻接矩阵的第一行第二列、第一行第四列、第一行第五列都是 1。在深度优先搜索函数中,我们首先将访问过的节点标记为已访问,并输出该节点,然后遍历该节点所有邻居节点,如果邻居节点未被访问过,则递归调用深度优先搜索函数来访问该节点。最后,我们从第一个节点开始进行深度优先搜索遍历。
阅读全文