11得票3回答
kd树是否总是平衡的?

我使用了kd树算法生成树。 但是我发现这棵树不平衡,所以我的问题是,如果我们使用kd树算法,那么树是否总是平衡的?如果不平衡,我们该如何使其平衡? 我们可以使用AVL或红黑树等其他算法来平衡kd树吗? 我有一些样本数据,我使用了kd树算法,但是那棵树不平衡。 (14,31), (15,3...

11得票2回答
在MongoDB中自定义索引比较器

我正在处理一个由概率加密元素组成的数据集,这些元素无法与随机样本区分开来。因此,对同一数字进行连续加密会产生不同的密文。然而,这些密文仍可以通过特殊函数进行比较,该函数应用了像SHA256这样的算法来比较两个密文。 我想将描述的密文列表添加到MongoDB数据库中,并使用基于树的结构(例如:...

10得票5回答
维基百科中的不平衡AVL树示例实际上有什么不平衡之处?

上面的图片来自"维基百科关于AVL树的条目", 维基百科指出该树不平衡。 这棵树为什么不平衡呢? 以下是文章中的一句话: 一个节点的平衡因子是其右子树高度减去其左子树高度,平衡因子为1、0或-1的节点被认为是平衡的。带有任何其他平衡因子的节点都被认为是不平衡的,并需要重新平衡树。平衡因子...

10得票2回答
在AVL树中处理重复键

我想让我的avl树支持重复的键,但是默认的二叉搜索树在处理重复键时存在问题,因为旋转操作可能会导致具有相同键的节点位于其父节点的左右两侧。 例如,当添加三个具有键A的节点时,树会执行旋转操作,使其变成以下结构: A / \ A A 因此,获取该键的所有条目将是一个问题.....

10得票9回答
AVL树的最小节点数是多少?

我知道在AVL树中找到最少节点的公式是: S(h) = S(h-1) + S(h-2) + 1 然而,我不太明白如何使用这个函数,举个例子,如果我们有一个AVL树高度为6。答案告诉我最小值=7+4+1=12。但你怎么得出这个数字的呢?我的意思是,当你输入6时,它不应该是(6-1)+(6-2...

10得票3回答
为什么AVL树在搜索方面比红黑树更快?

我在几个地方读到过avl树搜索更快,但无法理解。据我所知: 红黑树的最大高度 = 2 * log(N + 1) AVL树的高度 = 1.44 * log(N + 1) 这是因为AVL树更矮吗?

9得票1回答
为什么在Linux中内存管理中更倾向于使用红黑树而不是AVL树?

vm_area_struct结构用于链接内存映射可执行文件的各个部分,并以红黑树的形式存储。据我所知,正如这篇文章中提到的红黑树和AVL树之间的区别,AVL树比RB树具有更快的查找速度。 该树由进程引用的虚拟地址索引,并在进程开始执行时创建。我预计这棵树将被广泛用于查找,并且有时也会用于插入...

9得票2回答
在AVL树中查找两个数字之间的最小差距

我有一份数据结构的作业,除了常规的AVL树函数之外,我还需要添加一个函数来返回AVL树中任意两个数字之间的最小差值(实际上是AVL中的节点表示数字)。 假设我们在AVL树中有数字(作为节点)1 5 12 20 23 21,该函数应返回任意两个数字之间的最小差值。在这种情况下,它应该返回“1”...

8得票2回答
动态顺序统计:如何在常数时间内获取第k个元素?

因此,我正在尝试实现一种数据结构来处理动态顺序统计。数据结构具有以下操作: add(x):插入一个值为x的新元素 get(k):返回第k小的元素:其中k = ceiling(n/a),其中n = 数据结构中的元素数量,a = 常量因子。 reset:重置整个数据结构,即数据结构“为空” ...

8得票3回答
完美平衡二叉搜索树

我有一个关于平衡二叉树的理论问题。 我想要构建一个拥有2^k - 1个节点的完美平衡树,从一个普通的不平衡的二叉搜索树开始。最简单的解决方法是使用排序好的数组/链表,并递归地将数组分成子数组,然后从中构建完美平衡二叉树。 然而,在极大的树大小的情况下,我需要创建一个相同大小的数组/列表,因...