1. 程式人生 > >[Data Structure & Algrithom] 二叉樹

[Data Structure & Algrithom] 二叉樹

二叉樹性質 遍歷 點子 表示 高度 波蘭式 深度 col 例如

樹的基本概念

    • 結點的度 - 該結點子樹的個數
    • 樹的度 - 該樹中結點的最大度數
  • 葉子結點(終端結點) - 終端結點
  • 高度/深度/層數 - 該樹的行數

二叉樹

  • 滿二叉樹
  • 完全二叉樹
    • 最多最下面兩層上結點的度數<2
    • 最下一層上的結點都集中在該層左邊的位置上

二叉樹性質

  • 第i層上的結點數目最多為2i-1 (i ≥ 1)
  • 深度為k的二叉樹最多有2k-1個結點(k ≥ 1)
  • 任意一顆二叉樹,若0度結點的個數為n0,2度結點的個數為n2, 則n0 = n2 + 1
  • 具有n個結點的完全二叉樹的深度為[log2n]+1

二叉樹的遍歷

例如,將中綴表達式(a+b)/c-d+e*f表示為二叉樹
技術分享圖片

  • 前序遍歷 - 前綴表達式(波蘭式)
    • 根節點->左子樹->右子樹
    • 示例二叉樹的前序遍歷 +-/+abcd*ef
    • 特點:第一位一定是根節點
  • 中序遍歷 - 中綴表達式
    • 左子樹->根節點->右子樹
    • 找到根節點後,在其左側的都是左子樹下的結點,在其右側的都是右子樹下的結點
  • 後序遍歷 - 後綴表達式(逆波蘭式)
    • 左子樹->右子樹->根節點
    • 示例二叉樹的後序遍歷:ab+c/d-ef*+
    • 特點:最後一位一定是根節點

[Data Structure & Algrithom] 二叉樹