樹 森林和二叉樹的相互轉換

2021-08-04 20:25:53 字數 568 閱讀 2318

普通樹轉換為二叉樹步驟如下:

•加線,在所有兄弟結點之間加一條連線

•去線,對樹中每個結點,只保留它與第一孩子結點的連線,刪除它與其它孩子結點之間的連線

•層次調整,以樹的根節點為軸心,將整棵樹順時針旋轉一定角度,使之結構層次分明

森林轉化為二叉樹的步驟如下:

•將森林中的每棵樹轉換為二叉樹

•將各二叉樹的根結點視為兄弟從左至右連在一起,就形成了一棵二叉樹

二叉樹到樹、森林之間的轉換:

•若結點x是其雙親y的左孩子,則把x的右孩子,右孩子的右孩子,……,都與y用連接連起來

•去掉所有雙親到右孩子之間的連線

•調整位置

樹與森林的遍歷:

樹的遍歷分為兩種方式:

1、先根遍歷2、後根遍歷

先根遍歷:先訪問樹的根結點,然後再依次先根遍歷根的沒課子樹

後根遍歷:先依次遍歷沒課子樹,然後再訪問根結點

森林的遍歷也分為前序遍歷和後續遍歷,其實就是按照樹的先根遍歷和後根遍歷依次訪問森林的每一棵樹

樹、森林的前序遍歷和二叉樹的前序遍歷結果相同,樹、森林的後序遍歷和二叉樹的中序遍歷結果相同

森林 樹與二叉樹相互轉換

1 森林轉二叉樹 1 把每棵樹轉換為二叉樹 2 第一棵二叉樹不動,從第二棵二叉樹開始,一次把後一棵二叉樹的根結點作為前一棵二叉樹的根結點的右孩子,用線連線起來。轉換規則 兄弟相連,長兄為父,孩子靠左。2 樹轉二叉樹 1 加線。在所有的兄弟結點之間加一條線。2 去線。樹中的每個結點,只保留它與第乙個孩...

樹 森林與二叉樹相互轉換

本文參考自 大話資料結構 加線,在所有兄弟結點之間加一條連線 去線。對樹中每個結點,只保留它與第乙個孩子結點的連線,刪除它與其他孩子結點之間的連線 層次調整。以樹的根結點為軸心,將整棵樹順時針旋轉一定的角度,使之結構層次分明。注意第乙個孩子是二叉樹的左孩子,兄弟轉換過來的孩子是結點的右孩子。森林由若...

樹 二叉樹 森林 相互轉換

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