1. 樹潦刃、森林的轉(zhuǎn)換
(1) 利用孩子兄弟表示法,所有的樹都可以用二叉樹表示分扎。
(2) 森林由多棵樹組成,所有樹轉(zhuǎn)化二叉樹之后畏吓,將他們的根節(jié)點作為兄弟結(jié)點卫漫,再用孩子兄弟表示法,結(jié)合成一個二叉樹列赎。
2. 樹和二叉樹的轉(zhuǎn)換
(1) 在兄弟結(jié)點之間加一連線
(2) 每一結(jié)點只保留與第一個結(jié)點的連線,其他的抹掉
(3) 以樹根為軸心饼煞,順時針旋轉(zhuǎn)45°
關(guān)于第三步:其實就是把形成的新樹按照二叉樹的樣子進(jìn)行擺設(shè)(除了看起來順眼一點诗越,毫無意義)見下圖
Paste_Image.png
此處提到的,樹轉(zhuǎn)換而成的二叉樹其右子樹一定為空块促,道理很簡單床未,右孩子是結(jié)點的兄弟結(jié)點,而樹的根節(jié)點是不可能存在兄弟結(jié)點的薇搁。
3. 樹和森林的遍歷
(1) 樹的遍歷:先根遍歷,后根遍歷褥实。訪問根結(jié)點的先后
(2) 森林遍歷:先序遍歷(從第一棵樹開始裂允,挨著先序遍歷),中序遍歷(從第一棵樹開始僻澎,挨著后序遍歷)。
4. 遍歷的等價關(guān)系
樹 | 森林 | 二叉樹 |
---|---|---|
先根遍歷 | 先序遍歷 | 先序遍歷 |
后根遍歷 | 中序遍歷 | 中序遍歷 |
森林的先序遍歷就是把所有樹先根遍歷一遍
森林的中序遍歷就是把所有樹后根遍歷一遍窟勃,所以轉(zhuǎn)變成二叉樹的遍歷方法一樣逗堵。