创建邻接矩阵并输出深度遍历和广度遍历
时间: 2024-06-16 08:00:35 浏览: 93
邻接矩阵深度和广度遍历
邻接矩阵是一种表示图的数据结构,可以用来表示无向图或有向图。在邻接矩阵中,矩阵的行和列分别表示图中的节点,对应位置的元素表示两个节点之间是否存在边。
下面是创建邻接矩阵并输出深度遍历和广度遍历的基本步骤:
1. 创建一个二维数组,其大小为节点数 * 节点数。
2. 根据图中的边信息,将邻接矩阵中对应位置的元素赋值为1或0。
3. 深度遍历:
- 从起始节点开始,遍历所有与其直接相连的节点,标记这些节点为已访问。
- 对于每一个已访问的节点,递归地进行深度遍历。
4. 广度遍历:
- 创建一个队列,并将起始节点入队。
- 从队列中取出一个节点,并将所有与其直接相连的未访问节点入队。
- 对于每一个入队的节点,标记为已访问,并将其出队并输出。
下面是一个简单的 Python 代码示例:
```
# 创建邻接矩阵
adj_matrix = [
[0, 1, 1, 0],
[1, 0, 0, 1],
[1, 0, 0, 1],
[0, 1, 1, 0]
]
# 深度遍历
visited = [False] * len(adj_matrix)
def dfs(node):
visited[node] = True
print(node)
for i in range(len(adj_matrix)):
if adj_matrix[node][i] == 1 and not visited[i]:
dfs(i)
dfs(0)
# 广度遍历
visited = [False] * len(adj_matrix)
queue =
visited = True
while queue:
node = queue.pop(0)
print(node)
for i in range(len(adj_matrix)):
if adj_matrix[node][i] == 1 and not visited[i]:
queue.append(i)
visited[i] = True
```
阅读全文