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

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

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

推荐答案

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

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

.net相关问答推荐

StackExchange.Redis和NRedisStack包有什么不同?

dotnet 8 web api在部署到docker后无法工作

如何查询 DOTNET_CLI_TELEMETRY_OPTOUT 是否永久设置为 TRUE?

Ubuntu 22.04 + JetBrains Rider 不能做脚手架 dbContext

System.IO.Directory.Exists 在 LINQ 语句中失败,但在 foreach 循环中没有

为什么(真的吗?)List 实现所有这些接口,而不仅仅是 IList

HttpClient 请求抛出 IOException

为什么我得到 411 Length required 错误?

ILMerge 最佳实践

实例化具有运行时确定类型的对象

为什么要判断这个!= null?

如何从字符串中删除所有字母字符?

VB.NET 与 C# 整数除法

当我们按下 Enter 键时启动的 WPF 文本框命令

dotnet 恢复警告 NU1701

如何在 WPF 中的 Xaml 文件中添加注释?

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

为什么 !0 是 Microsoft 中间语言 (MSIL) 中的一种类型?

在 Windows 窗体 C# 应用程序中拥有配置文件的最简单方法

.NET 图形库?