AVL 红黑树 唯一性 分析 目前均不唯一 AVL的左右旋

AVL

依次插入1、2、3,

插入3,1不平衡了,对节点1左旋后平衡。

graph 1((1))-->2L((NIL)) 1((1))-->2((2))
graph 2((2))-->1((1)) 2((2))-->3((3))

逆序,依次插入,

插入1,3不平衡了,对节点3右旋后平衡。

依次插入9、1、6,

插入6,9不平衡了,对节点1左旋,再对节点9右旋后平衡。

graph 9((9))-->1((1)) 9((9))-->1R((NIL)) 1((1))-->6L((NIL)) 1((1))-->6((6))
graph 9((9))-->6((6)) 9((9))-->6R((NIL)) 6((6))-->1((1)) 6((6))-->1R((NIL))
graph 6((6))-->1((1)) 6((6))-->9((9))

依次插入1、9、6,

插入6,1不平衡了,对节点9右旋,再对节点1左旋后平衡。

4种情况
右右-左旋

左左-右旋

左右-先左旋后右旋

右左-先右旋后左旋

AVL 不唯一

AVL-1

graph 0((18))-->0L((7)) 0((18))-->0R((22)) 0L((7))-->0LL((3)) 0L((7))-->0LR((10)) 0R((22))-->0RRL((NIL)) 0R((22))-->0RRR((26)) 0LR((10))-->0LRL((8)) 0LR((10))-->0LRR((11))

AVL-2

graph 0((10))-->0L((7)) 0((10))-->0R((18)) 0L((7))-->0LL((3)) 0L((7))-->0LR((8)) 0R((18))-->0RL((11)) 0R((18))-->0RR((26)) 0RR((26))-->0LRL((22)) 0RR((26))-->0LRR((NIL))

AVL-2-1

graph 0((10))-->0L((7)) 0((10))-->0R((22)) 0L((7))-->0LL((3)) 0L((7))-->0LR((8)) 0R((22))-->0RL((11)) 0R((22))-->0RR((26)) 0RL((11))-->0LRL((NIL)) 0RL((11))-->0LRR((18))

AVL-2-2

graph 0((10))-->0L((7)) 0((10))-->0R((22)) 0L((7))-->0LL((3)) 0L((7))-->0LR((8)) 0R((22))-->0RL((18)) 0R((22))-->0RR((26)) 0RL((18))-->0LRL((11)) 0RL((18))-->0LRR((NIL))

红黑树 不唯一

AVL-1 根节点的孙节点有为叶子节点、不为叶子节点存在的情况,所以,不能构成红黑树

AVL-2 可以为红黑树,7、18、22为红,其余黑。

另解

graph 0((7B))-->0L((3B)) 0((7B))-->0R((18R)) 0L((3B))-->0LL((NIL)) 0L((3B))-->0LR((NIL)) 0R((18R))-->0RL((10B)) 0R((18R))-->0RR((22B)) 0RR((22B))-->0RRL((NIL)) 0RR((22B))-->0RRR((26R)) 0RRR((26R))-->0RRRL((NIL)) 0RRR((26R))-->0RRRR((NIL)) 0RL((10B))-->0RLL((8R)) 0RL((10B))-->0RLR((11R)) 0RLL((8R))-->0RLLL((NIL)) 0RLL((8R))-->0RLLR((NIL)) 0RLR((11R))-->0RLRL((NIL)) 0RLR((11R))-->0RLRR((NIL))
posted @ 2017-06-28 17:13  papering  阅读(335)  评论(0编辑  收藏  举报