Data structures 关于一系列插入、删除和搜索的AVL树和WAVL树之间的比较

Data structures 关于一系列插入、删除和搜索的AVL树和WAVL树之间的比较,data-structures,insert,avl-tree,Data Structures,Insert,Avl Tree,我们从一个空树开始,执行相同的插入、删除和搜索序列。一次使用AVL树,一次使用WAVL树。问题是确定我们在AVL树中更改节点秩的次数是否与我们在WAVL树中更改节点秩的次数相同(或乘以常数的次数) 我认为这不是真的。让我们调用序列n的长度。首先我们做n/2个插入。插入在两个树中的排名提升次数大致相同。我们最终得到了两棵平衡的树。然后我们取一个节点,它的键比之前的每个键都小,然后执行序列insert(x)、delete(x)、insert(x)、delete(x),。。。(剩下的n/2次我们都这么

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

我认为这不是真的。让我们调用序列n的长度。首先我们做n/2个插入。插入在两个树中的排名提升次数大致相同。我们最终得到了两棵平衡的树。然后我们取一个节点,它的键比之前的每个键都小,然后执行序列insert(x)、delete(x)、insert(x)、delete(x),。。。(剩下的n/2次我们都这么做了)


这样,AVL树中的最终n/2操作将花费至少(n/2)logn时间,而WAVL中的最终n/2操作将花费n/2时间(可以用势函数证明)。

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