我有一個像下面這樣的平面列表。從簡單列表創建父/子數據結構
nodeA
nodeB
nodeC
endnodeC
nodeD
endnodeD
endnodeB
endnodeA
有沒有什麼辦法在java中像folliwng那樣創建父子數據結構。
A
|
B
/\
C D
我有一個像下面這樣的平面列表。從簡單列表創建父/子數據結構
nodeA
nodeB
nodeC
endnodeC
nodeD
endnodeD
endnodeB
endnodeA
有沒有什麼辦法在java中像folliwng那樣創建父子數據結構。
A
|
B
/\
C D
你應該更清楚地閱讀這個問題。有一些具體的條款應該引發一個新的孩子。這看起來不像二叉樹。每次到達endNodeX時,都會彈回父級。可能每個節點可能有兩個以上的孩子。 – 2010-11-26 05:23:48
假設結果節點是一樣的東西:
class Node {
Node parent;
// other data
}
僞代碼,從你的單位名單產生的(假設flatNodes列表是正確的結構和對):
Node currentNode;
foreach (n in flatNodes) {
if (n is endnode) {
currentNode = currentNode.parent
} else {
Node newNode = createNodeBaseOnFlatNode(n);
newNode.parent=currentNode;
currentNode = newNode;
}
}
你說什麼「有什麼辦法」來做到這一點是什麼意思?我不認爲有一個現成的功能可以爲你做到這一點。但是這肯定是可能的,而且是簡單的遞歸編程。它實際上看起來像一個家庭作業問題。我不認爲有人會在這裏給你完整的解決方案,而應該嘗試取得一些進展並提出更具體的問題。 – emrea 2010-11-26 04:26:36
如果是這樣,請考慮將其標記爲家庭作業。它聽起來很像。 – 2010-11-26 05:26:08