[数据结构]树、森林与二叉树之间的相互转换方法
生活随笔
收集整理的這篇文章主要介紹了
[数据结构]树、森林与二叉树之间的相互转换方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
樹、二叉樹與森林的相互轉換
本文只給出樹、森林與二叉樹之間的轉換方法,而詳細的證明過程不在本文討論范圍之內。
樹 → 二叉樹
在所有兄弟結點之間加一連線。
對每個結點,除了保留與其長子的連線外,去掉該結點與其它孩子的連線。
二叉樹 → 樹
是樹轉換為二叉樹的逆過程。
加線。若某結點X的左孩子結點存在,則將這個左孩子的右孩子結點、右孩子的右孩子結點、右孩子的右孩子的右孩子結點…,都作為結點X的孩子。將結點X與這些右孩子結點用線連接起來。
去線。刪除原二叉樹中所有結點與其右孩子結點的連線。
森林 → 二叉樹
將森林中的每棵樹變為二叉樹;
因為轉換所得的二叉樹的根結點的右子樹均為空,故可將各二叉樹的根結點視為兄弟從左至右連在一起,就形成了一棵二叉樹。
二叉樹 → 森林
假如一棵二叉樹的根節點有右孩子,則這棵二叉樹能夠轉換為森林,否則將轉換為一棵樹。
從根節點開始,若右孩子存在,則把與右孩子結點的連線刪除。再查看分離后的二叉樹,若其根節點的右孩子存在,則連線刪除…。直到所有這些根節點與右孩子的連線都刪除為止。
將每棵分離后的二叉樹轉換為樹。
總結
以上是生活随笔為你收集整理的[数据结构]树、森林与二叉树之间的相互转换方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机WPS表格文档怎么隐藏单元格网格线
- 下一篇: [数据结构]邻接矩阵和邻接表存储的图DF