森林、樹與二叉樹相互轉換


 
1、森林轉二叉樹
     (1)、把每棵樹轉換為二叉樹
     (2)、第一棵二叉樹不動,從第二棵二叉樹開始,一次把后一棵二叉樹的根結點作為前一棵二叉樹的根結點的右孩子,用線連接起來。
轉換規則:兄弟相連,長兄為父,孩子靠左。      
2、樹轉二叉樹
     (1)、加線。在所有的兄弟結點之間加一條線。
     (2)、去線。樹中的每個結點,只保留它與第一個孩子結點的連線,刪除其他孩子結點之間的連線。
     (3)、調整。以樹的根結點為軸心,將整個樹調節一下(第一個孩子是結點的左孩子,兄弟轉過來的孩子是結點的右孩子)
例如:
3、二叉樹轉樹
     (1)、加線。若某結點X的左孩子結點存在,則將這個左孩子的右孩子結點、右孩子的右孩子的右孩子結點。。。都作為結點X的孩子。將結點X與這些右孩子結點用線連接起來。
     (2)、去線。刪除原二叉樹中所有結點與其右孩子結點的連線。
     (3)、層次調整。
4、二叉樹轉換為森林
  前提:   假如一棵二叉樹的根節點有右孩子,則這棵二叉樹能夠轉換為森林,否則轉換為一棵樹。
轉換規則:
     (1)、從根節點開始,若右孩子存在,則把與右孩子結點的連線刪除。再查看分離后的二叉樹,若其根節點的右孩子存在,則連續刪除。直到所有這些根結點與右孩子的連線都刪除為止。
     (2)、將每棵分離后的二叉樹轉換為樹。
 
 


免責聲明!

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



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