二叉樹 樹 森林之間的轉換

樹、森林和二叉樹的轉換

樹轉換爲二叉樹html

(1)加線。在全部兄弟結點之間加一條連線。post

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

(3)層次調整。以樹的根節點爲軸心,將整棵樹順時針旋轉必定角度,使之結構井井有條。(注意第一個孩子是結點的左孩子,兄弟轉換過來的孩子是結點的右孩子)htm

                       

森林轉換爲二叉樹blog

(1)把每棵樹轉換爲二叉樹。get

(2)第一棵二叉樹不動,從第二棵二叉樹開始,依次把後一棵二叉樹的根結點做爲前一棵二叉樹的根結點的右孩子,用線鏈接起來。it

 

二叉樹轉換爲樹class

是樹轉換爲二叉樹的逆過程。二叉樹

(1)加線。若某結點X的左孩子結點存在,則將這個左孩子的右孩子結點、右孩子的右孩子結點、右孩子的右孩子的右孩子結點…,都做爲結點X的孩子。將結點X與這些右孩子結點用線鏈接起來。im

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

(3)層次調整。

 

二叉樹轉換爲森林

假如一棵二叉樹的根節點有右孩子,則這棵二叉樹可以轉換爲森林,不然將轉換爲一棵樹。

(1)從根節點開始,若右孩子存在,則把與右孩子結點的連線刪除。再查看分離後的二叉樹,若其根節點的右孩子存在,則連線刪除…。直到全部這些根節點與右孩子的連線都刪除爲止。

(2)將每棵分離後的二叉樹轉換爲樹。

 

 

 

 

Reference:

 

 

 

 

 

 

 

轉自:http://www.cnblogs.com/zhuyf87/archive/2012/11/04/2753950.html

相關文章
相關標籤/搜索