左旋轉、右旋轉、雙旋


左旋轉、右旋轉、雙旋

 

1,LL :– 右旋轉(單旋):為啥LL ,要用右旋轉:LL 的意思是:左左,說明左邊高度多了一個?

--------------------左邊過重失衡,右旋轉,把重量勻稱一點到右邊。

 

2,RR: – 左旋轉(單旋):為啥RR ,要用左旋轉:RR 的意思是:右右,說明右邊高度多了一個?

--------------------右邊過重失衡,左旋轉,把重量勻稱一點到左邊。

 

3,LR – RR:左旋轉,然后得到 LL,再右旋轉(雙旋):首先看LR-RR結構的最后一對是RR,

■ 為啥RR, 要用左旋轉:RR 的意思是:右右,說明右邊高度多了一個?

--------------------右邊過重失衡,左旋轉,把重量勻稱一點到左邊。

■ 然后得到LL,要用右旋轉,LL的意思是:左左,說明左邊高度多了一個?

--------------------左邊過重失衡,右旋轉,把重量勻稱一點到右邊。

      

 

4,RL – LL:右旋轉,然后得到 RR,再左旋轉(雙旋):首先看RL-LL 結構最后一對是LL,

■ 為啥LL, 要用右旋轉:LL 的意思是:左左,說明左邊高度多了一個?

--------------------左邊過重失衡,右旋轉,把重量勻稱一點到右邊。

■ 然后得到RR,要用左旋轉,RR的意思是:右右,說明右邊高度多了一個?

--------------------右邊過重失衡,左旋轉,把重量勻稱一點到左邊。

      

 

1、旋轉的意義:就是為了勻稱掉失衡的狀態。

✿ 最后一個字母就是提示失衡的情況:

● LL: 是左邊失衡~ 右旋轉

● RR:是右邊失衡~ 左旋轉

● LR-RR: (可以看到該結構最后一對是 RR,是右邊失衡)左旋轉,處理后得到~LL(是左邊失衡),右旋轉。

● RL-LL:(可以看到該結構最后一對是 LL,是左邊失衡)右旋轉,處理后得到~RR(是右邊失衡),左旋轉。

 

1,LL型【右旋轉】的代碼:

g.left = p.right;
p.right = g;

理解:右旋g:將p的right 賦值給了g.left 。【原先模型中,g.left = p】

然后 p.right 指向了g。

【形態理解上:】【g的 左邊太重了】處理:

g.left = p.right;   ● 代碼意思:p 要丟給了g 最近的孩子(右孩子),然后 p 爬升了,

p.right = g;         ● 代碼意思:g 拿了 p 的右孩子后下沉了,p 的右孩子變成了下層的 g。

形象生動地使用現實中天平平衡的理解角度即可啦~

 

 

2,如何用代碼判斷是LL、RR、LR、RL 型的呢?

1,先看父節點是 左,則 L:

 ●  然后再看當前結點是左,則 LL,否則是右,則LR;

2,  若父結點是 右,則 R:

●  然后再看當前結點是左,則RL,否則是右,則RR;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM