樹 森林與二叉樹的轉換

2021-10-23 10:35:26 字數 534 閱讀 2060

從樹的二叉鍊錶表示的定義可知,任何一棵和樹對應的二叉樹,其根節點的右子樹必為空。若把森林中第二棵樹的根節點看成是第一棵樹的根節點的兄弟,則同樣可匯出森林和二叉樹的對應關係

樹⇄二叉樹⇄森林

結點的左子樹為該結點的第乙個左孩子;右子樹為該結點的兄弟結點。

具體步驟:

所有兄弟結點用線連起來

每個結點只保留與第乙個左孩子之間的連線,去掉其餘連線

調整層次。

將某結點的右孩子(右孩子的右孩子、右孩子的右孩子的右孩子……)與該結點的雙親結點連線

將原二叉樹的所有結點與右孩子之間的連線去掉

調整層次

先將每一棵樹轉化為二叉樹

第一棵樹的根結點作為二叉樹的根節點,從第二棵樹開始,將每棵樹的根節點作為上一課樹的右孩子

調整層次

如果二叉樹的根節點有右孩子,則可以轉換為森林,否則不行

將根節點與右孩子分開,右孩子作為第二棵樹;將第二棵樹的根節點與右孩子分開……直到最後一顆樹的根節點沒有右孩子

將分離出的二叉樹變為樹

樹 森林與二叉樹的轉換

1 加線。在所有兄弟節點之間加一條線。2 去線。對樹中每個節點,只保留它與第乙個孩子節點的連線,刪除它與其他孩子節點之間的連線。3 層次調整。以樹的根節點為軸心,將整顆樹順時針旋轉一定的角度,使之結構層次分明。注意第乙個孩子是二叉樹節點的左孩子,兄弟轉換過來的孩子是節點的右孩子。1 把每個樹轉換為二...

樹 森林與二叉樹的轉換

樹或森林與二叉樹之間有乙個自然的一一對應關係。任何乙個森林或一棵樹可惟一地對應到一棵二叉樹 反之,任何一棵二叉樹也能惟一地對應到乙個森林或一棵樹。1 樹 森林到二叉樹的轉換 1 將樹轉換為二叉樹 樹中每個結點最多只有乙個最左邊的孩子 長子 和乙個右鄰的兄弟。按照這種關係很自然地就能將樹轉換成相應的二...

樹 森林與二叉樹的轉換

1 樹轉換為二叉樹 將樹轉換為二叉樹的步驟如下 1 加線。在所有兄弟結點之間加一條連線。2 去線。對樹中每個結點,只保留它與第乙個孩子結點的連線,刪除它與其他孩子結點之間的連線。3 層次調整。以樹的根結點為軸心,將整棵樹順時針旋轉一定的角度,使之結構層次分明。注意第乙個孩子是二叉樹結點的左孩子,兄弟...