java - 修剪有向图的叶子组件

标签 java graph graph-algorithm directed-graph

给定一个有向图及其一些节点,如何修剪无法到达任何给定节点的节点。 (我将其称为叶组件,我不确定这是一个正确的术语)

有没有已知的算法可以有效地解决这个问题?

如果您能指出一些 Java 开源代码,那就完美了。

谢谢。

最佳答案

从给定的一组节点开始广度优先搜索或深度优先搜索,并标记搜索遍历的所有节点。之后,所有未标记的节点都无法从给定的节点集访问,并且可以被修剪。如果n是顶点数,m是边数,那么这将在O(n + m)内解决您的问题。 p>

我个人更喜欢Tinkerpop Blueprints作为我在 JVM/Java/Scala 中进行图形处理的主要库。

关于java - 修剪有向图的叶子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12770050/

相关文章:

java - 使用自定义 ClassLoader 拦截 ClassLoader.getResource(String) 调用

algorithm - 断开图中的最大二分匹配

c# - 图中2个节点之间的所有路径

algorithm - 动态规划或图算法,一个不错的问题

algorithm - 哪种情况使用哪种最小生成树算法

java - 将图像蒙版到视频帧,类似于MV Master

java - 构造函数还是设置函数?

java - 如何在 java 中获取部分从 jquery 加载的页面的整个 html

java - Neo4j 重新排序路径

graph - 分析 RDF 图 : average number of certain relation