【发布时间】:2010-10-30 20:01:18
【问题描述】:
.NET 中的基类库具有一些出色的集合数据结构(列表、队列、堆栈、字典),但奇怪的是它不包含任何用于二叉树的数据结构。对于某些算法,例如那些利用不同遍历路径的算法,这是一个非常有用的结构。我正在寻找一个正确编写的免费实现。
我只是瞎了眼,没有找到它……它被埋在 BCL 的某个地方吗?如果没有,有人可以推荐一个用于二叉树的免费或开源 C#/.NET 库吗?最好是使用泛型的。
编辑:澄清我在寻找什么。我对内部使用树的有序字典集合不感兴趣。我实际上对二叉树感兴趣 - 一种公开其结构的二叉树,以便您可以执行诸如提取子树之类的操作,或在节点上执行修复后遍历。理想情况下,可以扩展这样的类以提供专门树的行为(即红/黑、AVL、平衡等)。
【问题讨论】:
-
同意。我偶尔需要找到(在 O(Log N) 时间内)绑定一个值的两个节点(当在集合中找不到该值时)。例如,集合(树)包含 13 和 17(以及其他),我正在寻找小于和最小大于 16 的最大值。树可以做到这一点,但字典、排序列表和哈希表需要 O(N) .
标签: c# .net data-structures