所以我有一个巨大的有机体中的化学物质清单,包括它们的前体化学物质和他们创造的化学物质的数据。
我在想,某种树形结构是合适的;每个化学物质都是一个节点,每个父母都是一个先驱,每个孩子都是一个产品。
每个节点可以有多个父节点或多个子节点,这就是我的困惑所在!
然而,这个结构的主要功能将是找到所有的化学路径来实现它,我不确定在这种搜索中,树是否是最有效的。
我的问题是:对于这种类型的数据和操作,是否有更合适的数据结构?
发布于 2013-01-17 10:33:09
我认为你的数据结构是一个有向图。
要找到从A到B的所有路径,暴力方法是从A开始进行广度优先搜索,并尽可能多地覆盖图形。
这保证了您将找到的路径将按从最短到最长的长度排序。
无论何时点击B,都应该将该路径中的所有节点标记为“指向B”。这样,您就可以考虑收敛路径,而不必多次遍历图形。
请记住,除非您对其进行约束,否则图形可能会包含循环。从A到B的路径中的循环为您提供了无限的路径,因此您希望如何处理这种情况由您决定。
https://stackoverflow.com/questions/14371259
复制相似问题