二叉樹、樹、森林之間的轉換


 

1.樹轉換為二叉樹

(1)加線。在所有兄弟結點之間加一條線。

(2)去線。對樹中的每一個結點,只保留它與第一個孩子結點的連線,刪除它與其他孩子結點之間的連線。

(3)層次調整。以樹的根結點為軸心,順時針旋轉一定角度。

2.森林轉換為二叉樹

(1)把每一個樹轉換為二叉樹。

(2)第一棵二叉樹不動,從第二棵二叉樹開始,依次把后一棵二叉樹的根結點作為前一顆二叉樹的根結點的右孩子,用線連接起來。當所有的二叉樹連接起來后就得到了由森林轉換來的二叉樹。

3.二叉樹轉換成樹

(1)加線。若某結點的左孩子結點存在,則將這個左孩子的右孩子結點、右孩子的右孩子結點、右孩子的右孩子的右孩子結…反正就是左孩子的n個右孩子結點都作為此結點的孩子。將該結點與這些右孩子結點用線連接起來。

(2)去線。刪除原二叉樹中所有結點與其右孩子結點的連線。

(3)層次調整。使之結構層次分明。

4.二叉樹轉換成森林

判斷一棵二叉樹能夠轉換成一棵樹還是森林,就看這棵二叉樹的根結點有沒有右孩子,有就是森林,沒有就是一棵樹。

(1)從根結點開始,若右孩子存在,則把與右孩子結點的連線刪除。

(2)再查看分離后的二叉樹,若右孩子存在,則連線刪除…直到所有右孩子連線都刪除為止,得到分離的二叉樹。

(3)再將每棵分離后的二叉樹轉換為樹即可。

 


免責聲明!

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



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