.NET中的基类库有一些优秀的集合数据 struct (List、Queue、Stack、Dictionary),但奇怪的是,它没有包含任何二叉树的数据 struct .对于某些算法来说,这是一个非常有用的 struct ,比如那些利用不同遍历路径的算法.我正在寻找一个正确编写的,免费的实现.

难道我只是瞎了眼,却找不到它...它埋在地下吗?如果不是,有人能推荐一个免费或开源的C#/.NET二叉树库?最好是使用仿制药的.

EDIT:美元来弄清楚我要找的是什么.我对内部使用树的有序字典集合不感兴趣.实际上,我对二叉树很感兴趣--它公开了它的 struct ,这样您就可以提取子树,或者在 node 上执行修复后遍历.理想情况下,这样的类可以扩展为提供专门化树的行为(即.红/黑、AVL、平衡等).

推荐答案

你说得对,BCL里什么都没有.我怀疑这是因为 Select 是否使用树通常是一个实现细节,否则是访问数据的非常规方式.也就是说,你不会说,"二进制搜索元素#37";相反,你说,"给我元素#37".

但是你有没有看过C5呢?它非常方便,而且他们有几个树实现(123).

.net相关问答推荐

如何在dotnet中使用OpenTelemetry Prometheus导出器导出多个版本的度量?

为什么 GetShortestDayName 返回的名称比预期的短?

代码访问安全是否在任何现实世界中使用?

为什么 Any() 不适用于 c# null 对象

从 switch 块中跳出 foreach 循环

Silverlight 与 Flex

防止对话框在按钮的单击事件处理程序中关闭

.NET 4.0 中有内置的二叉搜索树吗?

无法加载文件或程序集WebGrease,版本=1.5.1.25624,Culture=neutral,PublicKeyToken=31bf3856ad364e35或其依赖项之一

为什么 ?: 会导致转换错误,而 if-else 不会?

有什么方法可以在不重新编译的情况下覆盖 .NET Windows 服务名称?

Await 运算符只能在 Async 方法中使用

在 .NET 中计算目录大小的最佳方法是什么?

如何在多个解决方案之间共享相同的 Resharper 设置,无需人工干预?

哪个密码字符在 winforms 文本框中显示黑点 (•)?

等待 Async Void 方法调用以进行单元测试

场与财产.性能优化

如何以编程方式删除 WebClient 中的 2 个连接限制

如何修复 .NET Windows 应用程序在启动时崩溃并出现异常代码:0xE0434352?

泛型类的静态成员是否与特定实例相关联?