层次结构的集合

问题描述:

在我写的应用程序中,我试图找到有效存储层次结构的方法。这是一个example层次结构的集合

在底部,您可以看到要存储的节点。我应该使用多维列表吗?这似乎不是最佳的,对吧?我在考虑像这样的参考:

node.Parent 
node.Children { collection } 

任何人都有这种东西的经验?

这是一个相当基本的树实现,是的。如果选择为孩子们制作一个IList或IEnumable或ArrayList等是由你决定的。

我强烈建议您构建一个通用的实现,而不是一个键入到您的域模型,但是这取决于你。

+0

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

+0

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

是的。你有正确的想法。如果您需要双向层次结构,则不会使用多维列表...我会将节点添加到树中,并且每个节点都包含一个父节点和一组子节点。

您正处在正确的轨道上。

如果不是所有的项目都是相同的类型,我可以在这种情况下使用抽象基类来作为链表和子集合。