B树节点通常如何表示?
我一直在做一些在我的B-树和2-3-4树(B树的顺序为4)上刷新,我试图在C#中实现它。我的问题是,鉴于B-Tree节点可以包含N-1个项目和N个子树,这些节点之一的典型表示是什么?它是一个数组,一系列链表还是我没有考虑过的东西?B树节点通常如何表示?
对于2-3-4树,它并不重要。对于大订单,您可以使用排序数组和二进制搜索。对于字符串等可变大小的键,一个trie可能是一个好主意。
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>> { ... }
binary-tree!= B-tree – 2010-02-08 11:58:01
是的,这就是为什么我在我的文章的正文(第二句),“不完全一样的作为B树,但你可能会觉得它有用。“这个想法是,集合的基本类型只是Collection
不要尝试组合子树和项目。您将需要阵列或列表<>。
如果您的订单是固定的,我会使用2个数组。否则,List<ItemClass>
和List<SubTree>
所以在N是2的情况下,可以有__子树?通常称为列表而不是树:) – 2010-02-07 22:13:16
符文FS:固定:) – 2010-02-07 22:15:02