伸展树(splay tree)

伸展树的设计思路,鉴于数据访问的局部性(28原则)在实际应用中普遍存在,将按照“最常用者优先”的启发策略。尽管在最坏情况下其单次操作需要 O(n) 时间,但分摊而言仍然 O(logn) 以内。

与 AVL 树一样,伸展树也是平衡二叉搜索树的一种实现。

  • 伸展树的实现更为简洁;

    • 伸展树无需时刻都严格地保持全树的平衡(设计的思路在于 AVL 的条件是不是太苛刻了),但却能够在任何足够长的真实操作序列中,保持分摊意义上的高效率。
  • 伸展树也不需要对基本的二叉树结点结构,做任何附加的要求和改动;

  • 更不需要记录平衡因子或高度子类的额外信息。

原文地址:https://www.cnblogs.com/mtcnn/p/9423686.html