问题标签 [avl-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2137 浏览

data-structures - 平衡二叉搜索树的比较

我已经阅读了一些关于自平衡二叉树的问答,但我对所有这些都不太熟悉。

我认识的第一个是 AVL,第二个是红黑树。

有一点我不太明白:根据一些书籍和文章,AVL 执行搜索的速度比红黑树快一点,嗯,这是可以理解的。

  1. 那么红黑树相对于 AVL 的优势是什么?

  2. 在 AVL 中,可能在每次插入之后,我们都必须检查平衡,但在红黑树中,我们不必经常做类似的事情,对吧?

PS:我搜索了类似的东西,但我没有得到令人满意的答案。希望有朋友可以给我详细的自平衡树对比。

0 投票
1 回答
653 浏览

algorithm - AVL树分析

我正在阅读 Weiss 的数据结构和分析中的 AVL tres

平衡条件之一将坚持每个节点必须具有相同高度的左右子树。如果一个空子树的高度被定义为 -1(像往常一样),那么只有 ((2 到 k 次方) - 1) 个节点的完美平衡树才能满足这个标准。因此,尽管这保证了深度较小的树,但平衡条件过于僵化而无用,需要放松。

通过给出示例 1 请求帮助理解上述文本。比如作者如何使用 ((2 的 k 次幂) - 1) 节点满足此标准?2.“虽然这保证了树的深度较小,但平衡条件太僵硬而无用,需要放松”是什么意思?

谢谢!

0 投票
1 回答
284 浏览

algorithm - 关于 AVL 旋转

我正在阅读 Mark Allen Wesis 的数据结构和算法中的 AVL 树

假设要重新平衡的节点是 X。我们可能需要修复 4 种情况(其中两种是另外两种的镜像): X 的左子树的左子树中的插入,右子树中的插入X 的左子树的插入,X 的右子树的左子树中的插入,或 X 的右子树的右子树中的插入。

通过树木旋转恢复平衡。

以下是我对上述文本片段的问题。

  1. 作者所说的其他两个镜像是什么意思?
  2. 什么是单旋转和双旋转的对称情况?

谢谢

0 投票
2 回答
28012 浏览

algorithm - AVL树和splay树的区别

我正在研究各种树,遇到了 AVL 树和张开树。我想知道

  1. AVL树和splay树有什么区别?
  2. 我们选择这些树的依据是什么?
  3. 这些树的正面和负面是什么?
  4. 这些树在大 O 符号方面的表现如何?
0 投票
1 回答
338 浏览

c++ - AVL 树最小和最大函数编译错误

我正在构建一个简单的 AVL 树,并从 GCC 收到以下编译器错误:

错误:“*”标记之前的预期构造函数、析构函数或类型转换

实现文件中的 min 和 max 函数声明都会收到错误。

以下两个成员函数存在问题:

这是声明:public:

这是类和 node_t 结构声明

0 投票
3 回答
933 浏览

algorithm - 查找算法的含义是什么?

我对“avl 树的查找算法”这个术语有点困惑。当我在谷歌搜索这个时,我看到很多与 b-tree 而不是 avl 树相关的网站。

那么,b-tree 算法是否等于 avl 树的查找算法?如果不是,什么是“avl 树的查找算法”?此外,“查找算法”是什么意思?请给我一个链接,当然如果可能的话。

0 投票
2 回答
203 浏览

avl-tree - 排序列表中的多个AVL树?

我正在处理一个 AVL 树分配,我有一个关于它们的定义的快速问题 - 我们得到一个排序列表,我们必须在 O(n) 时间内从中生成一个 AVL 树。我已经完成了这个(感谢 StackOverflow 的其他帮助!),但我的结果虽然是有效的 AVL 树,但与提供的示例的结果不同。是否可以从同一个排序列表中生成多个 AVL 树?

谢谢!

0 投票
0 回答
702 浏览

java - Java中AVL树的打印图

我需要在java中打印一个AVL树的图表,唯一的要求是我需要使用一个迭代器并且不能使用arraylist......来自我的教授的任意方面。因为它是 AVL,所以当树上有一个洞时,我似乎找不到摆脱 NoSuchElementException 的合乎逻辑的方法。有什么建议么?

0 投票
2 回答
342 浏览

database - 我应该使用哪种数据结构来表示大量记录,每个记录都代表一系列项目?

我正在寻找大量记录(超过 40 万条记录)的软件表示

每条记录有两个键。一个用于下限,一个用于上限。这些数字代表一个范围。此外,每条记录都有一些信息,我们称之为 I 。换句话说,每条记录都聚合了共同的项目索引,并有一些关于它们的共同描述。

我的软件有一个项目编号,我必须检索有关它的信息。

我想到了 AVL、B-Tress 或 fibonaci。但我敢肯定,对于这么多的记录来说,哪一个是最好的。对于小型数据库,我肯定会选择 AVL / 平衡 AVL。

0 投票
1 回答
572 浏览

c# - 在 AVL 树中使用 icomparable

在这个 avl 树中,我想为它比较左右节点和其他平衡方法,但在起点它不支持在这行代码中的 compareto

虽然我使用了接口 Icomaparable..任何人都告诉它里面缺少什么??????????????