一,森林轉換為二叉樹
森林是若干樹的集合,將森林中的每棵樹轉化為二叉樹,再將每棵樹的結點視為兄弟,這樣,森林也同樣可以轉換為二叉樹。具體方法如下:
(1)將森林中的每棵樹轉化為二叉樹。
(2)從第二棵二叉樹開始,依次把後一棵樹的根結點作為前一棵二叉樹根結點的右孩子,當所有二叉樹連起來後,此時所得到的二叉樹就是由森林轉換得到的二叉樹。
下圖給出了森林轉換為二叉樹的過程
二,二叉樹轉換為森林
是樹轉換為二叉樹的逆過程。
(1)加線。若某結點x的左孩子結點存在,則將這個左孩子的右孩子結點、右孩子的右孩子結點、右孩子的右孩子的右孩子結點…,都作為結點x的孩子。將結點x與這些右孩子結點用線連線起來。
(2)去線。刪除原二叉樹中所有結點與其右孩子結點的連線。
(3)層次調整。整理由(1),(2)兩步所得到的樹或者森林,使之層次分明。
森林 樹與二叉樹相互轉換
1 森林轉二叉樹 1 把每棵樹轉換為二叉樹 2 第一棵二叉樹不動,從第二棵二叉樹開始,一次把後一棵二叉樹的根結點作為前一棵二叉樹的根結點的右孩子,用線連線起來。轉換規則 兄弟相連,長兄為父,孩子靠左。2 樹轉二叉樹 1 加線。在所有的兄弟結點之間加一條線。2 去線。樹中的每個結點,只保留它與第乙個孩...
樹 森林與二叉樹相互轉換
本文參考自 大話資料結構 加線,在所有兄弟結點之間加一條連線 去線。對樹中每個結點,只保留它與第乙個孩子結點的連線,刪除它與其他孩子結點之間的連線 層次調整。以樹的根結點為軸心,將整棵樹順時針旋轉一定的角度,使之結構層次分明。注意第乙個孩子是二叉樹的左孩子,兄弟轉換過來的孩子是結點的右孩子。森林由若...
樹 二叉樹 森林 相互轉換
一.樹 二叉樹 由於二叉樹是有序的,為了避免混淆,對於無序樹,我們約定樹中的每個結點的孩子結點按從左到右的順序進行編號 將樹轉換成二叉樹的步驟 1 加線 就是在所有兄弟結點之間加一條連線 2 抹線 就是對樹中的每個結點,只保留他與第乙個孩子結點之間的連線,刪除它與其它孩子結點之間的連線 3 旋轉 就...