寻找相同类型节点的最长链

时间:2009-07-22 09:47:43

标签: algorithm actionscript graph nodes

我有各种类型的互连节点的树结构。每个节点都会跟踪它所连接的节点。在这个结构中,我需要找到最长的未连接链或相同类型节点的路径。

我已经阅读了图表和广度/深度优先搜索,但这些并不能完全满足我的需求。 (他们会找到一个链,但也包括起始节点和目标节点之间的所有死端分支)

是否存在用于此目的的现有算法?

1 个答案:

答案 0 :(得分:0)

如果“链”是指连接组件,那么

假设您的图表有边E和顶点V.

迭代边缘,删除连接不同类型节点的所有边。这是O(| E |)。

使用深度优先或广度优先查找连接的组件。这是O(| E | + | V |)。

最大的连通组件将是同类型节点中最长的链。

如果通过链表示简单循环(启动,停止在同一节点,不重新访问任何节点),那么这是NP完成。如果连接的组件很小,那么它应该是可行的。

如果用链表示简单路径,那么这就是NP-Hard。