2010-11-26 93 views
0

我有一個像下面這樣的平面列表。從簡單列表創建父/子數據結構

nodeA   
nodeB   
    nodeC   
    endnodeC 
    nodeD 
    endnodeD 
endnodeB 
endnodeA 

有沒有什麼辦法在java中像folliwng那樣創建父子數據結構。

A    
    |    
    B    
/\    
C D  
+0

你說什麼「有什麼辦法」來做到這一點是什麼意思?我不認爲有一個現成的功能可以爲你做到這一點。但是這肯定是可能的,而且是簡單的遞歸編程。它實際上看起來像一個家庭作業問題。我不認爲有人會在這裏給你完整的解決方案,而應該嘗試取得一些進展並提出更具體的問題。 – emrea 2010-11-26 04:26:36

+0

如果是這樣,請考慮將其標記爲家庭作業。它聽起來很像。 – 2010-11-26 05:26:08

回答

3

假設結果節點是一樣的東西:

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; 
    } 
}