第四章 樹 二叉樹 森林轉換

2021-08-27 13:48:43 字數 1005 閱讀 6743

樹轉換為二叉樹

(1)加線。在所有兄弟結點之間加一條連線。

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

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

森林轉換為二叉樹

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

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

二叉樹轉換為樹

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

(1)加線。若某結點x的左孩子結點存在,則將這個左孩子的右孩子結點、右孩子的右孩子結點、右孩子的右孩子的右孩子結點…,都作為結點x的孩子。將結點x與這些右孩子結點用線連線起來。

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

(3)層次調整。

二叉樹轉換為森林

假如一棵二叉樹的根節點有右孩子,則這棵二叉樹能夠轉換為森林,否則將轉換為一棵樹。

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

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

第四章 樹(遍歷二叉樹)

遍歷二叉樹,最常用的遞迴實現遍歷二叉樹,但我們還可以用非遞迴和層次遍歷樹的方法,這裡就要用到棧和佇列的一些知識,現在就讓我們把這兩個結合起來一起用。這個是非遞迴中序遍歷二叉樹,非遞迴我們可以用棧的思想,中序遍歷的時候,我們可以先一直把左子樹全裝棧裡面,然後當裝完左子樹的結點後,我們就出棧並輸出,然後...

二叉樹 樹 森林轉換

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

樹 森林 二叉樹的轉換

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