【发布时间】:2020-04-24 23:14:33
【问题描述】:
【问题讨论】:
-
在您的示例中,组件没有相互链接。如果是这种情况,您可以使用 BFS 找到这样的岛(组件),从图中删除该组件并搜索下一个。
标签: data-structures breadth-first-search
【问题讨论】:
标签: data-structures breadth-first-search
选择图中的任意节点。该节点属于某个组件,并且可能与其他几个节点一起存在。所以运行一个 BFS,将那个节点和所有可以从它到达的东西都涂成金色。这是一个组成部分。
现在选择另一个节点。两件事中的一件必须是真实的。首先,节点可能已经被涂成金色。在这种情况下,您已经计算了包含它的组件。其次,它可能是未上漆的。在这种情况下,你还没有计算它的组件,所以将它和所有可以从它到达的节点都涂成金色,这就是你的第二个组件。
你认为你可以概括这个想法,以便计算所有组件吗?
至于运行时——每个节点以这种方式被访问了多少次?请记住,您只将每个节点涂成金色一次,并且每个边仅在课程或涂色节点中被访问。
【讨论】: