二叉樹的基本概念

來源:互聯網
上載者:User

標籤:二叉樹

1、二叉樹的遞迴定義

二叉樹(BinaryTree)是n(n≥0)個結點的有限集,它或者是空集(n=0),或者由一個根結點及兩棵互不相交的、分別稱作這個根的左子樹右子樹的二叉樹組成。二叉樹指的是每個節點最多隻能有兩個子樹(左子樹和右子樹)的有序樹,子樹有左右之分,次序不能顛倒。

 

二叉樹不是樹的特例(1)二叉樹與無序樹不同

        二叉樹中,每個結點最多隻能有兩棵子樹,並且有左右之分。
        二叉樹並非是樹的特殊情形,它們是兩種不同的資料結構。

(2)二叉樹與度數為2的有序樹不同

         在有序樹中,雖然一個結點的孩子之間是有左右次序的,但是若該結點只有一個孩子,就無須區分其左右次序。而在二叉樹中,即使是一個孩子也有左右之分。

 

2、二叉樹的性質
  • 二叉樹第i層上的結點數目最多為2i-1(i≥1)。
  • 深度為k的二叉樹至多有2k-1個結點(k≥1)。
  • 在任意-棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則no=n2+1。
    滿二叉樹(FullBinaryTree)

    一棵深度為k且有2k-1個結點的二又樹稱為滿二叉樹。

    滿二叉樹的特點:

    (1) 每一層上的結點數都達到最大值。即對給定的高度,它是具有最多結點數的二叉樹。
    (2) 滿二叉樹中不存在度數為1的結點,每個分支結點均有兩棵高度相同的子樹,且樹葉都在最下一層上。

完全二叉樹(Complete BinaryTree)


    若一棵二叉樹至多隻有最下面的兩層上結點的度數可以小於2,並且最下一層上的結點都集中在該層最左邊的若干位置上,則此二叉樹稱為完全二叉樹。

完全二叉樹的 特點:
  (1) 滿二叉樹是完全二叉樹,完全二叉樹不一定是滿二叉樹。
  (2) 在滿二叉樹的最下一層上,從最右邊開始連續刪去若干結點後得到的二叉樹仍然是一棵完全二叉樹。
  (3) 在完全二叉樹中,若某個結點沒有左孩子,則它一定沒有右孩子,即該結點必是葉結點。
  • 具有n個節點的完全二叉樹的深度為log2n+1
3、二叉樹的基本操作
  • 初始化:通常是一個構造器,用於建立一個空的樹,或者以指定節點為根來建立二叉樹。
  • 為指定節點添加子節點
  • 判斷二叉樹是否為空白
  • 返回根節點
  • 返回指定節點的父節點
  • 返回指定節點的左節點(右節點)
  • 返回二叉樹的深度
  • 返回指定節點的位置
4、二叉樹的儲存結構

順序儲存:採用數組來記錄二叉樹的所有節點

二叉鏈表格儲存體:每個節點保留left、right域,分別指向其左、右子節點

三叉鏈表格儲存體:每個節點保留left、right、parent域,分別指向其左、右子節點和父節點

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.