大話資料結構第六章讀書筆記:樹(1)
阿新 • • 發佈:2018-12-21
1.基本概念
結點的度:結點擁有的子樹的個數
2.樹的儲存結構
樹的儲存結構在C++中有:雙親表示法、孩子表示法、孩子雙親表示法、孩子兄弟表示法
但自己當轉化為java程式時,卻發現這些表示法在java中沒有區別,不知道是不是自己理解錯了
一下給出結點的程式:
package tree; public class PTNode<T extends Comparable<T>> { T key; //關鍵字(鍵值) PTNode<T> parent; //雙親域,根節點沒有雙親,根節點的雙親域為None PTNode<T> firstchild; //長子域(最左邊的孩子) PTNode<T> rightchild; //右兄弟域 public PTNode(T key, PTNode<T> parent, PTNode<T> firstchild, PTNode<T> rightchild){ this.key = key; this.parent = parent; this.firstchild = firstchild; this.rightchild = rightchild; } public T getKey(){ return key; } }
雙親域、長子域、右兄弟域有需要時才新增
3.二叉樹
特殊二叉樹:
①斜樹:所有結點只有左子樹的二叉樹稱為左斜樹、所有結點只有右子樹的二叉樹稱為右斜樹。
②滿二叉樹:所有分支結點都存在左子樹和右子樹,所有葉子節點在同一層上。