我的应用程序需要具有以下特征的数据结构:
我发现完整二进制搜索树是这些操作的良好结构。我已经轻松实现了遍历和查找(它们非常通用)但是我很难插入。我似乎无法插入任意元素并重新平衡树而不会丢失shape属性(完整树)或分区属性(节点左侧的所有元素都严格地比节点小)。
我也找不到任何其他在线内容,我发现的唯一引用是关于一般二叉树(没有形状属性),并且在我的情况下不适用。完整的树木由于某种原因不受欢迎。
有没有人为完整的二叉树实现了插入,可以给我一些关于如何有效和高效地实现它的指针?这不是家庭作业,我需要它来做一个真正的项目。
答案 0 :(得分:2)
由于您希望在O(log n)中进行查找并在O(log n)中的任意位置插入,因此您需要一个自平衡搜索树。无法有效更新完整的二叉树 - 它们被视为静态数据结构,它们是为只读方案而制作的。