问题标签 [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 回答
5704 浏览

java - AVL 树遍历,搜索问题

我在我的 AVL 树实现中遇到了一些问题。所有旋转和添加的代码似乎都是正确的,我干运行程序以彻底检查它在逻辑上运行是否正确。我的树遍历(按顺序)似乎有问题,因为它只输出假定的 100 中的几个整数。此外,无论我输入什么,搜索总是失败。我似乎无法理解发生了什么,但我怀疑它与一些空指针有关。下面是 AVL 树的代码,我想知道 AddNode 方法或旋转方法中是否有任何不正确的代码,但它们似乎很好。这些类是 Node 类、AVL 类和 AVL 树类,这是主类.

节点类

AVL 类

主班

遍历的输出如下:

遍历:44 53 54 54 77

假设输入了 100 个整数,其中有这些。但是遍历的输出只是这个。

搜索的输出如下: 选择:4 请输入要搜索的整数:44 找到项目!44

选项:4 请输入要搜索的整数:100 搜索失败!0

100 和 44 都是添加到树中的整数,但是找到了 44 而没有找到 100.. 我不明白..

任何人都可以指导我解决方案..?

提前致谢 :)

0 投票
2 回答
4978 浏览

java - avl 树旋转

我正在尝试做一个 avl 树,它每次树不平衡时都会自我更新。旋转正在工作,但我有一个错误,例如,如果树节点 7、leftChild 6、leftchild 5 的 leftchild 变为节点 6、leftchild 5、rightchild 7,并且在平衡后我添加了一个新节点,该节点首先与7 而不是 6。我该如何解决这个问题?

这是主要课程:

这是来自一个普通的java类:

0 投票
1 回答
3167 浏览

data-structures - AVL 树和 2-3 树之间的偏好

有人可以告诉我使用 AVL 是否比使用 2-3 树更可取,反之亦然,为什么会这样?

谢谢

0 投票
3 回答
8348 浏览

c# - .NET 内置 AVL 树?

.NET 库中是否有内置的 AVL 树?

我搜索但没有找到。

  • 如果有,那么在哪里?什么命名空间?
  • 如果没有,C# 中的 AVL 树有什么好的实现吗?
  • 如果也没有!那么有没有简单的方法来完成它?我知道它是如何工作的,并且之前用原生 C++ 构建了一个,但现在我没有时间,而且如果我自己做的话,我害怕性能不佳。
0 投票
2 回答
8889 浏览

performance - 什么时候 AVL 树比哈希表更好?

更具体地说,如果使用 AVL 树而不是哈希表,是否可以更有效地执行任何操作?

0 投票
1 回答
815 浏览

java - AVL 树中序遍历不起作用

我的 AVL 树是在 Java 中使用二维整数数组实现的avlTree[35][5]- 列代表:

  • [0] - 左侧高度
  • [1] - 左孩子
  • [2] - 数据
  • [3] - 右孩子
  • [4] - 高度正确。

我从主程序调用以下方法,结果我得到了三个节点:最左边的节点两次,后跟它的父节点。

0 投票
1 回答
1540 浏览

algorithm - 如何生成尽可能不平衡的 AVL 树?

我在一些论文中看到了这一点,有人认为当我们删除 AVL 树的一个节点时,最多可以有 log(n) 次旋转。我相信我们可以通过生成尽可能不平衡的 AVL 树来实现这一点。问题是如何做到这一点。这将对我研究移除轮换问题有很大帮助。非常感谢!

0 投票
1 回答
561 浏览

c++ - AVL 寻找继任者

这是我的继任者功能:

我的导师给了我们一个充满随机数据的文件。我将所有这些数据放入树中,insert 方法有效,但是一旦 remove 方法启动,后继函数在某个时候返回与我正在寻找后继节点的节点相同的值。这不应该发生正确吗?我的后继功能正确吗?如果您想查看删除方法,只需提及它。

0 投票
1 回答
1230 浏览

algorithm - 合并 n 个 AVL 树

我有 n 个大小为 n_1,n_2,...,n_n 的 AVL 树,因此 sum(n_i)=n 。我可以在较大的一个大小的线性时间内合并两个 AVL。我可以在多长时间内合并这 n 棵树?感谢任何帮助

0 投票
4 回答
2390 浏览

c++ - AVL 树实现

这是我的 AvlTree 实现代码,但是有一个错误,当我运行时,它说运行时失败:P 未初始化以及如何修复我的代码?这里是