瘋狂Java——樹和二叉樹(第11章)

來源:互聯網
上載者:User

標籤:儲存   標記法   es2017   廣度優先遍曆   中序   個數   ima   滿二叉樹   二叉鏈表   

樹代表一種非線性的資料結構。

術語:

葉子節點:沒有子節點的節點,因此葉子節點不可作為父節點;

節點的度:節點擁有的子樹的個數被稱為該節點的度(degree);

樹的度:樹中所有節點的度的最大值就是該樹的度;

節點層次:節點的層次從根開始算起,根的層次值為1,其餘節點的層次值為父節點層次值加1;

樹的深度(depth):樹中節點的最大層次值稱為樹的深度或高度;

有序樹與無序樹:如果將樹中節點的各個子樹看成從左至右是有序的(即不能互換),則稱該樹為有序樹,否則稱為無序樹。

父親點標記法:每個子節點都記錄它的父節點;(這種方式是從子節點著手)

孩子鏈標記法:每個非葉子節點通過一個鏈表來記錄它所有的子節點。(這種方式是從父節點著手,特點:每個節點都可以快速找到它的所有子節點)如:

二叉樹:每個節點最多隻有兩個子樹的有序樹。

滿二叉樹:如果一棵二叉樹的深度為k,則其包含2k-1個節點。滿二叉樹如:

完全二叉樹:一棵有n個節點的二叉樹,按滿二叉樹的編號方式對他進行編號,若樹中所有節點和滿二叉樹1-n編號完全一致,則稱該樹為完全二叉樹。也就是說除最後一層外,其餘層的所有節點都是滿的。如:

 

 二叉樹性質:

1)在任何一棵二叉樹中,如果其葉子節點的數量為N0,度為2的子節點數量為N1,則N0=N1+1;

2)具有N個節點的完全二叉樹的深度為log2N+1;

二叉樹的二叉鏈表格儲存體的思想:讓每個節點都能記住它的左、右兩個節點。為每個節點增加left、right兩個指標,分別引用該節點的左、右兩個子節點。

二叉樹的三叉鏈表格儲存體的思想:讓每個節點不僅記住它的左右節點,還能記住它的父節點,利用指標parent。

遍曆二叉樹

I、先序遍曆:

    1)訪問根節點;

    2)遞迴遍曆左子樹;

    3)遞迴遍曆右子樹;

II、中序遍曆:

    1)遞迴遍曆左子樹;

    2)訪問根節點;

    3)遞迴遍曆右子樹;

III、後序遍曆:

         1)遞迴遍曆右子樹;

    2)訪問根節點;

    3)遞迴遍曆左子樹;

廣度優先遍曆:按層遍曆;

 

 

瘋狂Java——樹和二叉樹(第11章)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.