0

所以我有一个生物体内的大量化学物质清单,包括它们的前体化学物质和它们创造的化学物质的数据。

我在想某种树结构是合适的;每个化学品都是一个节点,每个父节点都是前驱体,每个子节点都是产物。

每个节点可能有多个父节点或多个子节点,因此我很困惑!

然而,这个结构的主要功能是找到所有的化学途径来制造它,我不确定一棵树在这种搜索中是否是最有效的。

我的问题是:对于这种类型的数据和操作,是否有更合适的数据结构?

4

1 回答 1

0

我认为您的数据结构是有向图。

寻找从 A 到 B 的所有路径的蛮力方法是从 A 开始进行广度优先搜索,并尽可能多地覆盖图形。

这保证了您将找到的路径的长度从最短到最长排序。

每当您点击 B 时,您应该将该路径中的所有节点标记为“通向 B”。通过这种方式,您可以解释收敛路径,而无需多次遍历图表。

请记住,除非您对其进行约束,否则图形可能包含循环。从 A 到 B 的路径中的循环为您提供了无限的路径,因此您可以自行决定如何处理这种情况。

于 2013-01-17T02:33:08.700 回答