2013-01-17 54 views
0

因此,我有一個生物體內的化學物質的巨大列表,其中包括它們的前體化學物質以及它們所創造的化學物質的數據。代謝途徑的理想數據結構

我在想某種樹形結構是合適的;每種化學品都是一個節點,每個父母都是一種前體,每個孩子都是一種產品。

每個節點可能有多個父母或多個孩子,因此我的困惑!

然而,在這個結構中的主要功能是找到所有的化學途徑來實現它,而且我不確定在這種搜索中樹是否是最有效的。

我的問題是:這種類型的數據和操作是否有更合適的數據結構?

回答

0

我認爲你的數據結構是一個有向圖。

用於查找從A到B的所有路徑的蠻力方法是從A開始進行廣度優先搜索,並儘可能多地覆蓋圖。

這可以確保您將找到的路徑的長度將從最短到最長。

每當你點擊B時,你應該將該路徑中的所有節點標記爲'通向B'。通過這種方式,您可以考慮趨同路徑,而不必多次走圖。

請記住,除非您限制它,否則圖形可能包含循環。從A到B的路徑中的循環向您呈現無限的路徑,因此您要如何處理這些情況取決於您。

+0

有道理,謝謝你的快速和簡潔的答案! – Darkstarone

+0

獲取所有路徑:http://www.geekviewpoint.com/java/graph/count_paths –