樹的介紹和二叉樹01

樹的相關概念

  • 樹結構的特點:

    • 每個結點有零個或多個子結點;
    • 沒有父結點的結點稱爲根結點;
    • 每一個非根結點有且只有一個父結點;
    • 除了根結點外,每個子結點可以分爲多個不相交的子樹
      在這裏插入圖片描述
  • 節點的度:該節點所擁有的子樹個數

  • 樹的度:樹中度最大節點的度就是該樹的度

  • 葉子(終端)節點:度爲0的節點

  • 雙親節點或父節點:若一個節點含有子節點,則這個節點稱爲其子節點的父節點; 如上圖:A是B的父節點

  • 孩子節點或子節點:一個節點含有的子樹的根節點稱爲該節點的子節點; 如上圖:B是A的孩子節點

  • 節點的層次:從根開始定義,根爲第一層,根的子節點爲第二層,以此類推 也有種說法根節點爲第0層,所以沒有特殊說明的話,默認根節點是第一層

  • 樹的高度/深度:節點的最大層次

  • 非終端節點/分支節點:度不爲0的節點

  • 兄弟節點:有相同雙親,比如B,C就是兄弟節點

  • 堂兄弟節點:雙親在同一層的節點,H和I就是堂兄弟節點

  • 森林:m棵互不相交的樹

樹的表示形式

  • 孩子表示法
    節點中既要保存值域,也要保存孩子節點的地址
    優點:找某個節點的孩子節點方便
    缺點:找雙親節點不方便

  • 雙親表示法
    節點中既要保存值域,還要保存雙親的地址
    優點:找節點的雙親比較方便
    缺點:找節點的孩子不方便

  • 孩子雙親表示法
    孩子表示和雙親表示結合起來,節點中既保存值域,也要保存節點的孩子以及雙親的地址

  • 孩子兄弟表示法(常用)
    要保存第一個孩子節點,和當前節點的下一個兄弟節點
    在這裏插入圖片描述

二叉樹!!很重要哦

二叉樹的相關概念

  • 二叉樹的特點

    • 二叉樹是一棵有序樹,左右子樹的次序不能顛倒
    • 二叉樹中一定不會存在度大於2的節點
  • 滿二叉樹:二叉樹中每層節點個數達到最大值
    第i層 2^(i-1)個節點
    如果一個滿二叉樹共n層,則共 2^-1個節點

  • 完全二叉樹
    如果一顆具有n個節點的二叉樹與滿二叉樹前n個節點的連接形式一樣(好好理解這句話),將該二叉樹稱爲完全二叉樹
    在這裏插入圖片描述
    ==》

    • 滿二叉樹是一顆特殊的完全二叉樹,但完全二叉樹不一定是滿二叉樹
    • 完全二叉樹中一定不會存在某節點只有右孩子沒有左孩子的情況

二叉樹的性質

  • 在二叉樹的第i(i>=1)層最多有2^(i - 1)個結點

  • 深度爲k(k>=0)的二叉樹最少有k個結點,最多有2^k-1個結點。

  • 對於任一棵非空二叉樹,若其葉結點數爲n0,度爲2的非葉結點數爲n2,則n0 = n2 +1

  • 對於具有n個節點的完全二叉樹,如果按照從上到下從左至右的順序對所有節點從0開始編號,則對於需要爲i的節點有:

    • 若i > 0,雙親序號:(i -1)/ 2 ;i = 0,i爲根節點編號,無雙親節點
    • 若2i + 1 < n,左孩子序號:2i + 1,否則無左孩子
    • 若2i + 2 < n,右孩子序號:2i + 2,否則無左孩子
      在這裏插入圖片描述
  • 如果完全二叉樹中的節點個數是偶數個,一定有一個節點只有左孩子

  • 如果完全二叉樹中的節點個數是奇數個,一定沒有隻有左孩子的節點

  • 【例題】假設一顆完全二叉樹中總共有1000個節點,則該二叉樹中_500___個葉子節點,__500__個非葉子節點,__1__個節點只有左孩子,__0__個節點只有右孩子
    在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章