广度优先遍历两个起点图解
时间: 2023-06-21 15:11:12 浏览: 67
假设我们有以下无向图:
```
A -- B -- C
| | |
D -- E -- F
```
我们可以从两个起点 A 和 E 开始进行广度优先遍历。
从起点 A 开始:
1. 访问节点 A。
2. 将节点 A 的所有邻居节点加入队列,即将 B 和 D 加入队列。
3. 访问队列中的下一个节点 B。
4. 将节点 B 的所有邻居节点加入队列,即将 A、C 和 E 加入队列(注意,A 已经在队列中了,不需要再加一次)。
5. 访问队列中的下一个节点 D。
6. 将节点 D 的所有邻居节点加入队列,即将 A 和 E 加入队列(同理,A 已经在队列中了)。
7. 访问队列中的下一个节点 C。
8. 将节点 C 的所有邻居节点加入队列,即将 B 和 F 加入队列。
9. 访问队列中的下一个节点 E。
10. 将节点 E 的所有邻居节点加入队列,即将 B、D 和 F 加入队列(同理,B 和 F 已经在队列中了)。
11. 访问队列中的下一个节点 F。
从起点 E 开始:
1. 访问节点 E。
2. 将节点 E 的所有邻居节点加入队列,即将 B、D 和 F 加入队列。
3. 访问队列中的下一个节点 B。
4. 将节点 B 的所有邻居节点加入队列,即将 A、C 和 E 加入队列(注意,E 已经在队列中了,不需要再加一次)。
5. 访问队列中的下一个节点 D。
6. 将节点 D 的所有邻居节点加入队列,即将 A 和 E 加入队列(同理,E 已经在队列中了)。
7. 访问队列中的下一个节点 F。
8. 将节点 F 的所有邻居节点加入队列,即将 C 和 E 加入队列(同理,E 已经在队列中了)。
9. 访问队列中的下一个节点 A。
10. 将节点 A 的所有邻居节点加入队列,即将 B 和 D 加入队列(同理,B 已经在队列中了)。
11. 访问队列中的下一个节点 C。
阅读全文