2009-04-14 275 views
0

在我寫的應用程序中,我試圖找到有效存儲層次結構的方法。這是一個example層次結構的集合

在底部,您可以看到要存儲的節點。我應該使用多維列表嗎?這似乎不是最佳的,對吧?我在考慮像這樣的參考:

node.Parent 
node.Children { collection } 

任何人都有這種東西的經驗?

回答

1

這是一個相當基本的樹實現,是的。如果選擇爲孩子們製作一個IList或IEnumable或ArrayList等是由你決定的。

我強烈建議您構建一個通用的實現,而不是一個鍵入到您的域模型,但是這取決於你。

+0

謝謝,在你的第二段中,你的意思是寫一個通用的CustomCollection ? – 2009-04-14 18:46:14

+0

不,更多像Treenode 它包含TreeNode 父母和IEnumerable >子女 – 2009-04-14 18:50:02

1

是的。你有正確的想法。如果您需要雙向層次結構,則不會使用多維列表...我會將節點添加到樹中,並且每個節點都包含一個父節點和一組子節點。

您正處在正確的軌道上。

1

如果不是所有的項目都是相同的類型,我可以在這種情況下使用抽象基類來作爲鏈表和子集合。