1. 程式人生 > >coding A&D:森林與二叉樹的轉換

coding A&D:森林與二叉樹的轉換

首先,樹轉二叉樹:

這裡寫圖片描述

「1」兄弟+橫線 
樹中的每一個結點,如果該結點有兄弟結點,那麼就在這幾個兄弟結點之間進行連線。

這裡寫圖片描述

「2」儲存長子線 
對於樹中的每一個結點,如果其有多個子節點,儲存其第一個子節點的連線,去除其他子節點的連線。

這裡寫圖片描述

「3」調整位置 
對每個結點調整一定的位置,使其符合二叉樹的標準。

這裡寫圖片描述

1. 森林轉換為二叉樹
【1】將每課樹轉換成二叉樹
【2】將每課樹的根結點連線起來 
【3】把每棵樹的根當做兄弟結點處理,兄弟加橫線旋轉調整位置

「例題」

這裡寫圖片描述

【1】將每課樹轉換成二叉樹

這裡寫圖片描述

【2】根結點橫線連線

這裡寫圖片描述

【3】調整位置,橫線變斜線

這裡寫圖片描述

2.二叉樹轉化為森林:

【1】根+左子樹,根+左子樹,... ...

【2】調整位置

這裡寫圖片描述