1. 程式人生 > >大話資料結構第六章讀書筆記:樹(1)

大話資料結構第六章讀書筆記:樹(1)

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.二叉樹

特殊二叉樹:

①斜樹:所有結點只有左子樹的二叉樹稱為左斜樹、所有結點只有右子樹的二叉樹稱為右斜樹。

②滿二叉樹:所有分支結點都存在左子樹和右子樹,所有葉子節點在同一層上。