我正在学习一些图算法(这不是作业,我只是在复习算法和数据结构),我有一个问题。假设我有以下无向图:
var graph = {
9: [19, 26],
13: [19, 5],
17: [],
26: [11, 18],
18: [9],
19: [],
23: [24],
24: [],
11: [],
18: []
};
这个图基本上是这样的:
![enter image description here](https://istack.dev59.com/A6kof.webp)
这个图中有多少个连通分量?仅从图形上看,似乎有3个组件。但如果我实际实现算法(迭代每个顶点,并使用该顶点作为起点进行bfs,如果该顶点未发现。此外,bfs将标记遇到的任何顶点为已发现)。
如果我从9
开始,我最终会发现以下节点:[19, 26, 11, 18]
。然而,13
没有被发现,因为它不在19
的邻接列表中。然而,19
在13
的邻接列表中。这就是我最终得到一个额外组件的原因。
这正确吗?实际上有4个独立组件吗?如果是这样,我的连通分量的理解是否错误?