一尘不染

C#中的树数据结构

c#

我在C#中寻找树或图数据结构,但我猜没有提供。使用C#2.0进行的数据结构的广泛检查解释了一些原因。是否有一个方便使用的库通常用于提供此功能?也许可以通过一种策略模式来解决本文中提出的问题。

我实现自己的树有点愚蠢,就像实现自己的ArrayList一样。

我只想要可以不平衡的通用树。想一想目录树。C5看起来很漂亮,但是它们的树结构似乎被实现为平衡的红黑树,比表示节点的层次结构更适合于搜索。


阅读 607

收藏
2020-05-19

共1个答案

一尘不染

我最好的建议是,没有标准的树数据结构,因为有很多方法可以实现它,所以不可能用一个解决方案覆盖所有基础。解决方案越具体,就越不可能适用于任何给定的问题。我甚至对LinkedList感到恼火-
如果我想要一个循环链表怎么办?

您需要实现的基本结构将是节点的集合,这是一些入门的选项。假设Node类是整个解决方案的基类。

如果只需要在树上导航,则Node类需要一个子级列表。

如果需要在树上导航,则Node类需要一个指向其父节点的链接。

构建一个AddChild方法,该方法处理这两点的所有细节以及必须实现的任何其他业务逻辑(子限制,对子进行排序等)

2020-05-19