tree-balancing相关内容

AVL 二叉树 - 平衡测试

我正在尝试测试一棵树是 AVL 树还是不使用 prolog. 我已经做了一个高度测试,适用于我迄今为止所做的测试,但我的平衡测试仍然不强. 这是我目前的工作: avl('Branch'(LeftBranch,RightBranch)) :-高度(左分支,H1),高度(RightBranch,H2),abs(H1-H2)=<1. 我根据较旧的 stackoverflow 代码编写了此 ..
发布时间:2022-01-05 18:59:36 其他开发

计算二叉搜索树高度的最佳方法?(平衡 AVL 树)

我正在寻找在 AVL-tree 中计算节点余额的最佳方法.我以为我可以正常工作,但是在进行了大量插入/更新之后,我可以看到它无法正常工作(根本无法正常工作). 这是一个两部分的问题,第一部分是如何计算子树的高度,我知道定义“节点的高度是最长向下路径的长度到那个节点的叶子." 我理解它,但我未能实现它.更让我困惑的是,这句话可以在维基百科的树高上找到“通常,值 -1 对应于没有节点的子树,而零 ..

Prolog-是否平衡树

我想编写一个程序,告诉我一棵树是否平衡.在这种情况下,平衡意味着相同的高度或高度差为1. 这是我到目前为止编写的内容,但是对于1的高度差却不起作用.为什么? balanced(l(_)). balanced(b(B1, B2)):- height(B1,H), height(B2,H), balanced(B1), balanced(B2). bala ..
发布时间:2020-07-26 01:55:47 其他开发

语法平衡问题

是否可以强制 Boost.Spirit Qi 以这种方式运行,以使生成的语法可以根据运行时可计算的条件/规则/速率进行调整?例如,输入由语言结构组成,这些语言结构在解析过程中会导致不同的选择,某些情况下会更频繁地出现,而其他方面则更少.但是备选方案的顺序会影响效率,即语法的运行时最佳性.在某些情况下,无法预先确定在任意输入(可能是很强的聚集性)的情况下,会更频繁地选择哪种选择. 我知道可以在 ..
发布时间:2020-07-26 01:55:45 C/C++开发

AVL树平衡

我正在处理一项要求我实施AVL树的任务.我很确定我有正确的旋转方法,但是在弄清楚何时使用它们时遇到了麻烦. 例如,书中的解释说,我应该沿着向下插入节点/元素的路径向上爬.但是,我没有任何父指针. 最新代码: public BinaryNode insert(BinaryNode node) { if (this.getElement().compareTo(n ..
发布时间:2020-07-26 01:55:41 Java开发

AVL Binary Heap(平衡测试)

我正在尝试通过一棵树测试是否是AVL树. 我已经进行了一项高度测试,该测试可用于到目前为止已经完成的测试,但是我的平衡测试仍然不够强. 这是我到目前为止的工作: avl('Branch'(LeftBranch,RightBranch)) :- height(LeftBranch,H1), height(RightBranch,H2), abs(H1-H2) = ..
发布时间:2020-07-26 01:55:37 其他开发

左平衡二叉树

我正在读一本关于数据结构的书,它说左平衡的二叉树是一棵树,其中的叶子仅占据最后一层中的最左边的位置. 对我来说这似乎有点模糊.这是否意味着叶子仅在根的左侧并且分布在整个级别上,或者叶子仅在整个树的左侧存在.究竟什么构成左平衡? 我不确定我的猜测是否涵盖了任何答案,因此,如果有人可以提供帮助,将不胜感激:-). 解决方案 您可以将左平衡的二叉树视为平衡的二叉树,其中每个节点的左子 ..
发布时间:2020-07-26 01:55:33 其他开发

什么自平衡树在函数式编程中最简单?

我正在设计一个Haskell中的自平衡树。作为一个练习,因为它非常适合你的后背。 以前在C和Python中,我倾向于使用Treaps和Splay Trees,因为它们有简单的平衡规则。我总是不喜欢R / B Trees,因为他们看起来工作量比他们的价值还要高。现在,由于Haskell的功能性质,事情似乎已经发生了变化。我可以在10行代码中编写一个R / B插入函数。另一方面,Treaps需要 ..
发布时间:2018-04-18 15:40:05 其他开发

计算二叉搜索树中高度的最佳方式? (平衡AVL树)

我正在寻找在 AVL-tree 中计算节点余额的最佳方法。我以为我已经工作了,但经过一些沉重的插入/更新,我可以看到它不正确(总是)。 这是一个两部分的问题,第一部分将是如何计算子树的高度,我知道定义“节点的高度是从该节点到叶片的最长下行路径的长度。“我明白了,但是我未能实现它。为了进一步混淆我这个引用可以在树高度上的维基百科上找到“通常,值-1对应于没有节点的子树,而零对应于一个具有一个节 ..

保持AVL树平衡,而不旋转

B +树像AVL树自平衡树。 这里我们可以看到左,右旋转用于保持AVL树平衡。 和这里是说明在插入一个链接B +树。这种插入技术不涉及任何旋转,如果我没有错,以保持树的平衡。因此它看起来简单。 问:是否有任何类似的(或不使用旋转任何其他技术),以保持AVL树平衡? 解决方案 答案是...是的,没有。 B树不需要进行旋转,因为它们具有与它们可以多少不同的密钥包成节点中的某些松弛。当您添加越 ..
发布时间:2015-11-30 22:03:36 C/C++