數據結構與算法-樹(樹 二叉樹 森林三者的轉換)

我們都知道呀,二叉樹是特殊的樹,小孱弱弱今天就分享它們之間的關係,我們都知道,二叉樹避比數更有具有優勢,如果我們有一棵樹,要處理這棵樹,自然是轉化爲二叉樹更加方便啦,前輩們早就將算法設計出來了,我們只需要用就歐克。下面一起來看看吧!
一、樹轉化爲二叉樹。
1.加線。所有的兄弟節點之間都加一條線。
2.去線。對樹中的每個節點,只保留它與第一個孩子的連線,刪除它和其他孩子的連線。
3.層次調整。以樹的根節點爲軸心,整棵樹順時針旋轉一定角度,讓他們層次分明。
注意:千萬不能弄錯左右孩子之間的關係。

二、森林轉化二叉樹。
1.把每棵樹轉化爲二叉樹。
2.第一棵二叉樹不動,從第二課樹開始,一次把後一棵二叉樹的根節點變成前一棵樹根節點的右孩子。

三、二叉樹轉換爲樹。
這其實是一的逆向。
1.加線。如果每個節點的左孩子存在,那麼就把這個左孩子的右孩子,右孩子的右孩子……,就是左孩子的n個右孩子都作爲這個結點的孩子,將這些右孩子該節點連起來。
2.去線。刪除原來二叉樹中所有節點與它的右孩子的連線。
3.層次調整。自由發揮。

四、二叉樹轉換爲森林。
1.從根節點開始,如果右孩子存在,則刪除他們的連線,一直刪除到底。
2.將分離的二叉樹轉化爲樹就歐克了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章