Please enable JavaScript.
Coggle requires JavaScript to display documents.
Data Structure (:moneybag:Tree (:three:Red-Black Tree (:moneybag:Property,…
Data Structure
:moneybag:skip list
:moneybag:分析
:moneybag:空间复杂度
:key:层1期待值n, 层2期待值n/2, 层3期待值n/4...
-
-
-
-
:moneybag:Tree
:one:AVL Tree
:moneybag:操作
-
:one:插入
:moneybag:旋转
:explode::one:4种情况:左左,右右,左右,右左 :two:左左和右右单旋转(祖父转),左右和右左双旋转
-
-
:two:Splaying Tree
:moneybag:操作
:one:Splaying
:moneybag:旋转
:two:我有一个父亲
-
:two:我的父亲p还有一个父亲,记作g
:one:我,p,g构成了左左或右右
:explode:祖父,父亲都转一次,共转两次.左左=>右右,右右=>左左:check:
:two:我,p,g构成了左右或右左
:explode:双旋转,先父亲,后祖父:check:
-
:three:Red-Black Tree
-
-
:moneybag:Operation
:one:Insert
:one:插入的时候按照BST插入,默认red
-
:two:我有父亲
-
:two:我父亲是红的
:one:我叔叔是黑的
:one:我是右孩子
- 1 more item...
:two:我是左孩子
- 1 more item...
:two:我叔叔是红的
:explode:父亲和叔叔变黑,祖父变红,不再检查我,而是开始检查祖父位置
-
:moneybag::fast_forward:case图解
:moneybag:degree
-
:star:红黑树里只有一个孩子的节点,这个节点的孩子肯定是害羞(红)得单身(没有孩子)的
:moneybag:Heap
:one:Leftist Heap
-
-
:moneybag:Operation
:one:merge
:explode:我们称root内容大的为大树,小的为小树.则每次都是大树和小树的右边一起合并,合并后放在小树右边,然后看要不要交换
:warning:大树包括root,小树不用root
:two:Skew Heap
:moneybag:Operation
:one:merge
:explode:大树和小树的右边合并,合并后放在小树右边,然后一定交换
:three:Binomial Queue
:moneybag:Operation
:two:delete-min
-
:snowflake:找到最小值,然后合并两个二项队列
-
:explode:B0,B1,B2,..
B0表示1个单独的node,而B1为2个nodes
:moneybag:rank
-
:tornado:rank(B0)=0,rank(B1)=1,...,rank(Bk)=k
-