【发布时间】:2021-11-14 17:38:47
【问题描述】:
假设我们有 2 个 AVL 树(使用方法 insert(key) 和 delete(key)),但其中一个存在损坏的节点(损坏的节点数量远少于总数该树中的节点数)。
我们希望将 2 个 AVL 树合并为 1 个单独的 AVL 树,以便删除损坏的节点(我们有损坏节点的键列表)。
“朴素”算法是(假设树 1 包含损坏的节点):对于每个损坏的节点,将其从树 1 中删除。然后将树 1 中的所有剩余节点插入树 2,所以最终的 AVL 树就是我们想要的“合并”树。
现在的问题是提出一种更有效的方法来合并 2 棵树,比上面的 朴素算法 更好。
有人知道吗?感谢您的帮助!
【问题讨论】:
-
“naive”算法不是有
O(NlogN)复杂度吗?
标签: python database algorithm avl-tree lookup-tables