B树节点通常如何表示?

时间:2010-02-07 22:03:03

标签: c# data-structures tree b-tree

我一直在刷B-Tree和2-3-4树(B树的顺序为4),我试图在C#中实现它。我的问题是,鉴于B树节点可以包含N-1个项目和N个子树,这些节点之一的典型表示是什么?它是一个数组,一系列链接列表,还是我没有考虑过的东西?

3 个答案:

答案 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>> { ... }