AVL树与平衡树

时间:2015-09-03 08:51:44

标签: database algorithm data-structures

AVL树是众所周知的内部存储器数据结构,而平衡树是已知的外部存储器数据结构。 为什么我们也不能将平衡树用作内存?

1 个答案:

答案 0 :(得分:2)

可以在内存中拥有平衡的树。 AVL树只是一种平衡树,还有其他树,例如红黑和2-3-4树。

所以,我不确定 你知道平衡树不能存在于内存中,但如果我是你,我会重新思考。< / p>

事实上,如果您愿意,也可以将AVL树放在磁盘上。

我怀疑,根据您的评论,您可能想到的是BTree,它就像一棵二叉树,但每个节点可以拥有多个值并且有两个以上的子节点,如:

root node -,
           |
           V
 +------+------+------+
 | Val1 | Val2 | val3 |
 +------+------+------+
/       |      |      \
<other nodes down here>

这与更通用的术语“平衡树”不同[&p;并且它们经常用于磁盘情况,因为您倾向于一次读/写整个块/集群/扇区。

因此,如果你可以在磁盘块中放入十个值,那么使用BTree会更有效(而内存没有块大小的概念,因此最好使用更简单的算法--BTrees必须结合树搜索来查找节点和线性/二进制搜索以找到 in 节点中的值。

但是,虽然BTrees可以是平衡树的类型,但它只是一个类型。