在我写的应用程序中,我试图找到一种有效存储层次结构的方法。这是一个example。
在底部,您可以看到要存储的节点。我应该使用多维列表吗?这似乎不是最优,对吧?我在考虑像这样持有参考文献:
node.Parent
node.Children { collection }
任何人都有这种东西的经验吗?
答案 0 :(得分:1)
呀。你有正确的想法。如果你需要一个双向层次结构,我就不会使用多维列表......我会在树上添加一个节点,每个节点都包含一个父节点和一个子集合。
你走在正确的轨道上。
答案 1 :(得分:1)
这是树的一个相当基本的实现,是的。如果选择为孩子们制作集合,则IList或IEnumable或ArrayList等由您决定。
我强烈建议您构建一个通用实现,而不是键入一个类型的域模型,但这取决于您。
答案 2 :(得分:1)
如果并非所有项目都属于同一类型,我可以在这种情况下使用抽象基类作为链接列表和子集合。