資料結構(樹)
參考網站
樹的定義
樹是1對多
的結構,沒有節點的樹稱為空樹
1.存在唯一的根節點(root)
2.其餘節點可成為另一棵樹或稱子樹,注意子樹互不相交
節點分類
一個節點的子樹數量稱為度
度為 0 表示此節點是葉子
階級
階級是從root
開始算,根為一階並往下加
最大階度也稱為樹的深度或高度
樹的抽象資料型別
1 | 樹 (Tree) |
二元樹
1.每個節點最多兩個子樹,所以沒有大於2度的節點
2.左子樹和右子樹是有順序的
3.即使只有一個子樹也要區分左右
特殊二元樹
斜樹:所有節點只有左子樹或右子樹
完滿二元樹(Full binary):所有葉子都在同一階,高度 h 要有 2^h-1 個 Node
完整二元樹(Complete binary):也就是高度 h 但 Node < 2^h-1 個 Node 的樹
實作二元樹
3 種實作二元樹的方法
1 | 陣列表示法(如果是斜樹會浪費空間) |
走訪二元樹
走訪二元樹的順序很重要,每個 Node 只拜訪一次
主要分為下面 4 種走法,都用遞迴寫法
1 | 前序(PreOrder) |