algorithm - 查找图中一对一节点的所有链

标签 algorithm tree nodes graph-theory undirected-graph

我使用无向图G,我的目标是找到一对一关系中长于N节点的所有可能的链。

例如:

在下图中,一对一关系中长度超过 2 个节点的“链”是:

- d -> e -> f -> g
- c -> k -> l -> m

enter image description here

那么解决这个问题的最佳方法或算法是什么?

最佳答案

如果你想找到所有路径,使得其中每个顶点的度数<=2,那么简单的方法可能如下。

从图中删除度数 >2 的所有顶点。您将得到一张图,其中每个顶点的度数 <=2。很容易证明这样一个图的每个连接组件要么是一种简单的方式,要么是一个简单的循环,并且很容易区分它们(例如,从一个节点运行 DFS 并查看是否返回到它) .

因此,作为路径的每个组件都是您要查找的路径。作为循环的每个组件也是您寻找的路径,或者可以通过删除边或顶点轻松转换为这样的路径,具体取决于您是否允许循环作为所需的路径。

关于algorithm - 查找图中一对一节点的所有链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424668/

相关文章:

点对点节点间任务分配算法

python - 最长公共(public)子序列测试用例失败

python - 复杂度为 O(N) 的字符串中的回文切片数

c - 释放内存/跨平台兼容性问题

Java 树字符串数据结构

algorithm - 数据结构 - 访问和索引的大 O。他们到底是什么意思?

sql - 如何检索没有那些 child 的子类别?

javascript - 获取通过其链接连接的所有节点

c++ - 返回链表中值的总和

node.js - Model.findOne 不返回文档但返回包装对象