【发布时间】:2013-01-28 13:49:10
【问题描述】:
我在数据库中有以下形式的数据:
A -> B
C -> D
B -> C
F -> G
G -> J
X -> Z
这基本上意味着 A 到 B,C 到 D 等等。给定这些数据和一个节点(例如 C),我想构建找到 C 的 complete 路径是A -> B -> C -> D 。我尝试通过使用一些字典和递归循环来做到这一点,但我不喜欢这种缓慢的解决方案,因为 db 中有很多数据。有什么更好的方法来解决这个问题?在算法和数据结构方面?任何想法或提示表示赞赏。
【问题讨论】:
-
"The" 完整路径?可能有多个完整路径。或者没有完整的路径。
-
“完整路径”是Hamiltonian Path?如果是这样,您将面临一个称为Hamiltonian Path Problem 的 NP 完全问题,并且没有已知的多项式解决方案
-
@CédricBignon 完整路径是指C之前和之后的路径。总有一条路径可以从数据中构造出来,并且不能有多个路径(由于结构的定义)
-
@amit 这不是汉密尔顿路径。路径是定向的,不必从所有顶点经过
-
那我不明白问题所在,请描述一下。