【问题标题】:Comparison between AVL trees and WAVL trees regarding a series of inserts, deletes, and searchesAVL 树和 WAVL 树关于一系列插入、删除和搜索的比较
【发布时间】:2018-04-29 19:31:38
【问题描述】:

我们从一棵空树开始,执行相同的插入、删除和搜索序列。一次使用 AVL 树,一次使用 WAVL 树。问题是确定我们改变AVL树中节点等级的次数是否与我们改变WAVL树中节点等级的次数相同(或乘以常数的数字)。

我认为这不是真的。让我们称序列n的长度。首先,我们进行 n/2 次插入。插入在两棵树中采用或多或少相同数量的等级提升。我们最终得到了两棵平衡的树。然后我们取一个 key 小于之前每个 key 的节点,并执行序列 insert(x)、delete(x)、insert(x)、delete(x),...(我们在剩下的 n /2 次)。

这样,AVL 树中最后的 n/2 次操作至少需要 (n/2)logn 时间,而在 WAVL 中则需要 n/2 时间(可以用势函数证明)。

【问题讨论】:

    标签: data-structures insert avl-tree


    【解决方案1】:

    答案是确定是错误的。一个例子是插入 n/2 个节点。然后,交替插入和删除一个最小节点。 在 AVL 树中,它会占用 (n/2)*logn,而在 WAVL 中,它不会超过 2n 个操作。

    【讨论】:

      猜你喜欢
      • 2017-08-20
      • 2015-03-06
      • 1970-01-01
      • 2021-07-16
      • 2021-08-27
      • 2013-01-18
      • 1970-01-01
      • 2016-01-07
      • 1970-01-01
      相关资源
      最近更新 更多