我需要编写函数,它接收一些键x并将2-3棵树拆分为2-2-3棵树。在第一棵树中,所有节点都大于x,在第二棵树中,所有节点都小于x。我需要用复杂度O(Logn)来实现。提前谢谢你的任何想法。
编辑
我想在树上找到x键然后把它的两棵子树(如果它们有大或小)分裂成2棵树,然后开始爬起来,每次都去检查我还没有检查过的子树,然后加入到其中一棵树上。我的问题是所有的叶子必须在同一水平。
最佳答案
假设您已经在讲座中介绍了2-3-4 trees,这里有一个提示:看看是否也可以对2-3棵树应用相同的插入算法。特别是,使插入始终从叶开始,然后适当地重新构造树完成后,确定所得到的算法的复杂性。