我一直在刷B-Tree和2-3-4树(B树的顺序为4),我试图在C#中实现它。我的问题是,鉴于B树节点可以包含N-1个项目和N个子树,这些节点之一的典型表示是什么?它是一个数组,一系列链接列表,还是我没有考虑过的东西?
答案 0 :(得分:2)
对于2-3-4树,它并不重要。对于大订单,您将使用排序数组和二进制搜索。对于像Strings这样的可变大小的键,trie可能是一个好主意。
答案 1 :(得分:1)
不要尝试组合子树和项目。您需要 2 数组或List<&gt ;.
如果您的订单已修复,我会使用2个数组。否则,List<ItemClass>
和List<SubTree>
答案 2 :(得分:0)
Here's an interesting article on MSDN关于在C#中编写二进制搜索树。与b树不完全相同,但您可能会发现它很有用。在这种情况下,作者使用通用的Collection基类:
public class Node<T>
{
private T data;
private NodeList<T> neighbors = null;
...
}
public class NodeList<T> : Collection<Node<T>> { ... }