其他分享
首页 > 其他分享> > Splay平衡树

Splay平衡树

作者:互联网

一、二叉搜索树(\(BST\))

由于\(Splay\)就是一种\(BST\),所以先来说说\(BST\)是什么。

定义:

\(BST\)其实就是一棵树,不一定为满二叉树, 但必定遵循左子树 < 根 < 右子树

操作

基础操作都十分简单:

二、\(Splay\)

开启话痨模式
不知道\(Splay\)是啥,,你也要知道平衡树是啥。
平衡树是一个神奇的数据结构,
对于任意一个节点,左儿子的值比它小,右儿子的值比它大。
并且任意一棵子树单独拎出来也是一棵平衡树。
就像这样:

1.jpg

上面这个丑陋的东西就是一棵平衡树,他现在很平衡,是一棵满二叉树,高度正好是\(logn\)。
但是……
如果这个丑陋的东西极端一点,他就会变成这样:
2.jpg

现在看起来,这个东西一点都不平衡……
二叉树退化成了一条链
如果要查询的话,,,最坏情况下就变成了\(O(n)\)
这就很尴尬了。
于是有个大佬叫做\(Tarjan\)发明了\(Splay\)来保持平衡树平衡的外形……
\(Tarjan\)大佬的基本思路就是

标签:BST,Splay,二叉树,一棵,平衡,节点
来源: https://www.cnblogs.com/GalaxyOier/p/15807109.html