邻接矩阵广度优先遍历
时间: 2023-12-10 11:04:29 浏览: 108
邻接矩阵广度优先遍历是一种图的遍历算法,用于遍历图中所有节点。具体步骤如下:
1. 创建一个队列,将起始节点放入队列中。
2. 创建一个visited数组,用于记录每个节点是否被访问过,将起始节点标记为已访问。
3. 当队列不为空时,执行以下操作:
- 从队列中取出一个节点,访问该节点。
- 遍历该节点的所有邻居节点,如果邻居节点未被访问过,则将其标记为已访问,并将其加入队列中。
4. 重复步骤3,直到队列为空。
下面是一个Python实现的邻接矩阵广度优先遍历的例子:
```python
def BFSTraverse(graph, start):
queue = [] # 创建一个队列
visited = [False] * len(graph) # 创建一个visited数组,初始值为False
queue.append(start) # 将起始节点放入队列中
visited[start] = True # 标记起始节点为已访问
while queue:
node = queue.pop(0) # 从队列中取出一个节点
print(node, end=' ') # 访问该节点
for i in range(len(graph)):
if graph[node][i] != 0 and not visited[i]: # 遍历该节点的所有邻居节点
visited[i] = True # 标记邻居节点为已访问
queue.append(i) # 将邻居节点加入队列中
# 示例代码
graph = [[0, 1, 1, 0],
[1, 0, 0, 1],
[1, 0, 0, 1],
[0, 1, 1, 0]]
BFSTraverse(graph, 0) # 从节点0开始遍历
```
阅读全文