Algorithm 移位二叉树
我不太清楚这个想法叫什么。我想维护一个平衡的二叉搜索树,在这个树中,我经常会向树中添加一个新的最高元素,然后删除树中最小的元素。这始终是一个Algorithm 移位二叉树,algorithm,binary-search-tree,Algorithm,Binary Search Tree,我不太清楚这个想法叫什么。我想维护一个平衡的二叉搜索树,在这个树中,我经常会向树中添加一个新的最高元素,然后删除树中最小的元素。这始终是一个O(log(n))操作,还是可以在固定时间内完成此特定转换 自平衡二叉树有用吗?我相信您正在寻找的数据结构称为a 它总是平衡的。最大元素总是根元素,可以在O(1)时间内检索到。所有插入和删除都在O(logn)时间内完成(在最坏的情况下)。如果将其实现为一个数组,那么它的大小也是有限的。(不记得插入时是否始终删除最小值) 它需要执行两个O(logN)操作。没有
O(log(n))
操作,还是可以在固定时间内完成此特定转换
自平衡二叉树有用吗?我相信您正在寻找的数据结构称为a
它总是平衡的。最大元素总是根元素,可以在O(1)时间内检索到。所有插入和删除都在O(logn)时间内完成(在最坏的情况下)。如果将其实现为一个数组,那么它的大小也是有限的。(不记得插入时是否始终删除最小值) 它需要执行两个
O(logN)
操作。没有办法更快地做到这一点,因为BST并不是设计用来做这些事情的。我也不确定它是否能使你的搜索树保持平衡。(我不确定这个想法叫什么
-标题移位
)我怀疑我想保持一个平衡的二叉搜索树
-大多数时候,有需要保存的数据和需要执行/支持的操作:您不知道是哪些操作。