LBu*_*kin 82 .net c# data-structures
.NET中的基类库为集合(List,Queue,Stack,Dictionary)提供了一些出色的数据结构,但奇怪的是它不包含二进制树的任何数据结构.对于某些算法,例如利用不同遍历路径的算法,这是非常有用的结构.我正在寻找一个正确编写的免费实现.
我只是瞎了,没找到它......它被埋在BCL的某个地方吗?如果没有,有人可以为二进制树推荐免费或开源的C#/.NET库吗?优选使用仿制药的一种.
编辑:澄清我在寻找什么.我对内部使用树的有序字典集合不感兴趣.我实际上对二叉树感兴趣 - 一个公开其结构的树,以便您可以执行诸如提取子树或在节点上执行修复后遍历等操作.理想情况下,这样的类可以扩展为提供专门树的行为(即红/黑,AVL,平衡等).
Jas*_*son 67
你可以定义自己的:
public class MyTree<K, V> : Dictionary<K, MyTree<K, V>>
{
public V Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
或者没有密钥:
public class MyTree<V> : HashSet<MyTree<V>>
{
public V Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
Alu*_*ord 36
你想从这样的实现中得到什么?
二叉树?红黑?基数树?B树?R树?R* - 树?
树更像是一种模式而不是数据结构,并且它们倾向于在性能很重要的地方使用(因此实现细节也可能很重要).如果BCL包含某种树类,那么你只需要自己滚动
小智 15
我相信,SortedDictionary作为log(n)插入,您可以从树数据结构中获得的检索特征.
http://msdn.microsoft.com/en-us/library/f7fta44c(VS.80).aspx
Mat*_*ell 12
SortedSet<T>实现为二叉搜索树ref.SortedDictionary<TKey, TValue>内部使用SortedSet<T>它也是二元搜索树引用.
不,Tree<T>BCL中没有任何" 类似"的类型(一直困扰着我的东西)但这里有一篇很好的文章,将引导您在C#中实现自己的类型.
我想你可以说,基于树的数据结构不常用于.NET通常用于的应用程序(业务应用程序,数据移动应用程序等).不过,我同意你的看法,BCL根本没有实施,这很奇怪.
| 归档时间: |
|
| 查看次数: |
35444 次 |
| 最近记录: |