gpt4 book ai didi

algorithm - 计算连通图中两个节点之间的分离度

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:38:04 26 4
gpt4 key购买 nike

我正在开发一个图形库,它需要确定两个节点是否连接,如果连接,它们之间的分离程度是多少即从源节点到达目标节点需要经过的节点数。

由于它是一个非加权图,bfs 给出了最短路径。但是如何跟踪在到达目标节点之前发现的节点数。

一个在发现新节点时递增的简单计数器将给出错误的答案,因为它可能包含甚至不在路径中的节点。

另一种方法是将其视为均匀加权边的加权图并使用 Djkastra 的最短路径算法。

但我只想用 bfs 来管理它。

怎么做?

最佳答案

在 BFS 期间,让每个节点都存储一个指向其前任节点的指针(图中的节点沿着其边缘首次被发现)。然后,一旦你运行了 BFS,你就可以重复地从目标节点到源节点跟随这个指针。如果您计算这需要多少步,您将得到从目的地到源节点的距离。

或者,如果您需要重复确定节点之间的距离,您可能需要使用 Floyd-Warshall all-pairs shortest paths algorithm,如果预先计算,您可以立即读取任何节点对之间的距离。

希望这对您有所帮助!

关于algorithm - 计算连通图中两个节点之间的分离度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14323757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com