AVL树是众所周知的内部存储器数据结构,而平衡树是已知的外部存储器数据结构。 为什么我们也不能将平衡树用作内存?
答案 0 :(得分:2)
你可以在内存中拥有平衡的树。 AVL树只是一种平衡树,还有其他树,例如红黑和2-3-4树。
所以,我不确定 你知道平衡树不能存在于内存中,但如果我是你,我会重新思考。< / p>
事实上,如果您愿意,也可以将AVL树放在磁盘上。
我怀疑,根据您的评论,您可能想到的是BTree,它就像一棵二叉树,但每个节点可以拥有多个值并且有两个以上的子节点,如:
root node -,
|
V
+------+------+------+
| Val1 | Val2 | val3 |
+------+------+------+
/ | | \
<other nodes down here>
这与更通用的术语“平衡树”不同[&p;并且它们经常用于磁盘情况,因为您倾向于一次读/写整个块/集群/扇区。
因此,如果你可以在磁盘块中放入十个值,那么使用BTree会更有效(而内存没有块大小的概念,因此最好使用更简单的算法--BTrees必须结合树搜索来查找节点和线性/二进制搜索以找到 in 节点中的值。
但是,虽然BTrees可以是平衡树的类型,但它只是一个类型。