10月18日总结
splay 简要讲解
前置芝士:普通二叉树
splay tree是一个越处理越灵活的数据结构,通过splay(伸展)操作,使整棵树的单次查询时间复杂度接近于O(log n),整棵树的高度也接近于log n
根据上面的这句话,很明显能看出splay与普通二叉树的区别
普通二叉树经过多次处理后,很容易退化成链,单次查询的复杂度直升O(n),对于处理大型数据来说,这是绝对不能允许的
OI和ACM界也经常会有数据能使一个普通二叉树快速退化成链
例: 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9
很明显,对于大型数据的处理来说,普通二叉树已经满足不了了
下面,我将会以例图来讲解中序遍历
这张图是我偷的,哈哈
在这组数据中,数的根节点为6,整棵树的中序遍历为1,2,3,4,5,6,7,10,15,一个树的中序遍历为:左子树 + 根 + 右子树
很明显,这是递增的,当前这个splay树维护的是一个递增的序列
操作
splay 有一个核心操作,就叫splay(伸展)
splay操作是依靠rotate去实现的

浙公网安备 33010602011771号