问题标签 [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.
c++ - AVL 树的奇怪行为
下面的代码让我很困惑。
班级
插入功能。
这是高度函数。
有谁知道为什么?
=== 更新:
旋转时
它似乎没有按应有的方式交换值。虽然 n = child 似乎在本地交换,但它并未反映其余代码的更改。给我一个无限循环。
data-structures - AVL树插入问题
我正在观看 IIT 关于数据结构 (Dr.naveen garg) 关于 AVL 树的讲座。
我的问题:为什么T2的高度不能是(h-1)?
c++ - AVL Tree Rotation 的正确实现是什么?
将 50、49、48 插入 AVL 树时,它会打印出来。
这是我的功能。向左旋转:
插入:
data-structures - 更新 AVL 树节点的平衡因子
我正在学习 AVL 树,并且我知道如何进行所有旋转,但我需要知道的一件事是如何制作它,以便在每次插入或旋转后更新节点的平衡因子。
谢谢!
c++ - 从这里实例化
我对“从这里实例化”有疑问。
我的错误是:
c++ - 使用空树合并 AVL 树(C++ 模板)
作为 AVL 模板的一部分,我正在研究(C++ 模板),当 n1+n2 是两棵树中的总元素时,我试图以 O(n1+n2) 复杂度合并 2 棵 AVL 树。
我想到了下一个算法。
- 在第一棵树上进行中序遍历并构建一个数组/列表 - O(n1)
- 在第二棵树上进行中序遍历并构建一个数组/列表 - O(n2)
- 合并这两个数组的排序并以 n1+n2 - O(n1+n2) 的大小构建最终排序的数组/列表
- 用 n1+n2 个顶点构建一个空的几乎完整的二叉树 - O(n1+n2)。
- 在使用合并数组/列表中的元素更新顶点时,在几乎完整的二叉树上进行中序遍历。
我的问题是我如何实际构建具有 n1+n2 个顶点的空几乎完整的二叉树?
java - 在 JAVA 中实现 AVL 树
我想在 Java 中实现一个 AVL 树,这是我目前所拥有的:
我需要实现添加和删除功能。这是我到目前为止所拥有的,两者都应该及时运行O(log(n))
。两者都应该返回整个树的根:
我需要有关制作添加和删除功能的帮助。
是否有任何指南来描述添加和删除操作的工作原理? 要复制的库或我可以弄清楚 AVL 树如何/为什么工作的东西?
java - 更新 AVL 树问题
到目前为止,我只致力于实现同侧 AVL 树更新。
我遇到的问题是在二叉搜索树经过 AVL 重新排序后,我的显示功能爆炸了。我相应地移动了指针,但是当函数中断时,插入了另一个对象,我无法终生调试它。任何帮助将不胜感激。
这是我的 AVLTree 课程
}
c++ - 编译 C++ 代码时出现“未定义的引用”错误,但可以编译原始的 makefile 代码
我从以下网址下载了一个通用的 AVL 实现:http: //sourceforge.net/projects/standardavl/files/standardavl/0.1/
此项目中的 makefile 可以正确编译代码。编译器产生以下输出:
makefile 只编译“standardavl.cpp”,因为standartavl 包含“AvlTree.h”而该文件包含“AvlTree.cpp”:
标准avl.cpp
AvlTree.h
在我的项目中,我从文件 AvlTree.h 中删除了最后一行(#include "AvlTree.cpp")并单独编译了这些文件。我也不使用文件“standardavl.cpp”。我将文件 Point.h 更改为 KeyPair.h 并在那里实现了所有运算符。
我的编译器产生以下输出:
我在这里做错了什么?
algorithm - 在 2 个 AVL 节点之间搜索最大值
我有一段AVL tree
时间每个节点包括:
- 钥匙
- 价值
AVL tree
是按键排序的。
因此,如果我有 2 个键,现在我想找到这 2 个键之间的最大值。我已经尝试向每个节点添加其他信息,例如左子树中的最大值和右子树中的最大值,但是如果不“丢失”一些节点之间的节点,我就无法获得正确的算法。
复杂度时间: O(log n) 最坏情况。