樹 森林與二叉樹的轉換

2021-06-25 10:57:58 字數 599 閱讀 2418

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

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

3)層次調整。以樹的根節點為軸心,將整顆樹順時針旋轉一定的角度,使之結構層次分明。注意第乙個孩子是二叉樹節點的左孩子,兄弟轉換過來的孩子是節點的右孩子。

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

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

1.加線。若某節點的左孩子存在,則將該節點與左孩子的右孩子、右孩子的右孩子節點,右孩子的右孩子的右孩子……節點相連,這個左孩子的n個右孩子成為其孩子。

2.去線。刪除原來二叉樹中所有節點與其右孩子的連線。

3.層次調整。使之結構層次明確。

判斷一棵二叉樹能夠轉換為一棵樹還是森林,就看這棵二叉樹的根節點有沒有右孩子。有就是森林,沒有就是樹。那麼如果是轉換成森林,步驟如下:

1)從根節點開始,若右孩子存在,則斷開與右孩子的連線。在看分離後的二叉樹,若右孩子存在,繼續斷開連線……,直到所有右孩子連線都刪除,得到分離的二叉樹。

2)再將分離後的二叉樹轉換為樹。

樹 森林與二叉樹的轉換

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

樹 森林與二叉樹的轉換

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

樹 森林與二叉樹的轉換

樹 森林與二叉樹的轉換 1 樹轉換為二叉樹 由於二叉樹是有序的,為了避免混淆,對於無序樹,我們約定樹中的每個結點的孩子結點按從左到右的順序進行編號。將樹轉換成二叉樹的步驟是 1 加線。就是在所有兄弟結點之間加一條連線 2 抹線。就是對樹中的每個結點,只保留他與第乙個孩子結點之間的連線,刪除它與其它孩...