algorithm - 修改深度优先搜索以在特定半径内工作

标签 algorithm data-structures graph depth-first-search

假设您有一个加权图。从一个随机节点开始,如何使用深度优先搜索(修改使用显式堆栈的迭代算法)来检查某个权重半径内存在哪些节点? (在特定权重下可以从此节点到达。)

最佳答案

假设我们使用类型 Node来表示图中的一个节点。在最简单的情况下,Node可能只是一个整数 ( int )。

通常,我们使用类型为 Node 的显式堆栈.在您的情况下,我们可以使用 pair<Node,int> 类型的堆栈其中 pair<A,B>是一对的类型,int代表从你的起点到这个 Node 的距离.

假设我们现在在 Node u与距离 d .对于相邻的 Node v , 让w是边的权重uv .然后只需按 pair(v, d+w)到堆栈。最初,推送 pair(v0, 0)其中 v0是深度优先搜索的起点。

关于algorithm - 修改深度优先搜索以在特定半径内工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14039676/

相关文章:

python - 在 k 个数组中查找第 a 到第 b 个最小元素的有效方法

java - 通过实数加权无向图的单对最短路径的最简单算法/解决方案是什么?

java - 在 Java 中处理大型字符串列表

java - 这种 LILO 的最有效收集?

c - 中断安全设置扫描

javascript - 存储分步指南的数据结构

c++ - 迭代std::bitset中真实位的有效方法?

algorithm - 求出金字塔结构中第 i 个杯子中的水量?

python - python 的顶点着色 - 色数 X(G)

algorithm - 以微秒精度压缩 unix 时间戳