平衡二叉树(AVL树)-详解平衡调整
生活随笔
收集整理的這篇文章主要介紹了
平衡二叉树(AVL树)-详解平衡调整
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
平衡調整:
(注意:平衡調整只是平衡調整,沒有進行結點的插入)
LL型調整:
(帶陰影的小框表示插入的結點)
代碼如下:
RR型調整:
(帶陰影的小框表示插入的結點)
代碼如下:
LR型調整:
(帶陰影的小框表示插入的結點)
情況一:
(C為新插入的結點)
情況二:
(F為新插入的結點)
情況三:
(F為新插入的結點)
代碼如下:
AVLNode *AVLTree::LR_Rotate(AVLNode *a) {AVLNode *b, *c;b = a->lchild;c = b->rchild;a->lchild = c->rchild;b->rchild = c->lchild;c->lchild = b;c->rchild = a;if (c->bf == 1)//情況二{a->bf = -1;b->bf = 0;}else if (c->bf == -1)//情況三{a->bf = 0;b->bf = 1;}else//情況一{a->bf = b->bf = 0;}c->bf = 0;return c; }RL型調整:
(帶陰影的小框表示插入的結點)
情況一:
(C為新插入的結點)
情況二:
(F為新插入的結點)
情況三:
(F為新插入的結點)
代碼如下:
總結
以上是生活随笔為你收集整理的平衡二叉树(AVL树)-详解平衡调整的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 二叉排序树(搜索树BST)-详解结点的删
- 下一篇: [Qt入门] QPushButton创建