二叉樹(一)

何爲二叉樹?

二叉樹是結點的又窮集合,這個集合能夠是空集,能夠只有一個根結點,還能夠是兩棵不相交的二叉樹,在二叉樹中須要區分左子樹和右子樹。linux

二叉樹特色

  • 1.二叉樹中至多關聯連個後繼結點,關聯的後繼結點分左右。
  • 2.二叉樹是一種遞歸結構。
  • 3.對於非空二叉樹,其結點集合非空,至少包含一個根結點,其子樹能夠爲空。
  • 4.空樹:不包含任何結點的二叉樹。
  • 5.單點樹:只包含一個結點(根結點)的二叉樹。
  • 6.兄弟結點:父結點相同的兩個結點互爲兄弟結點。
  • 7.樹葉結點:不包含子結點的結點。
  • 8.分支結點:包含子結點(左右結點或只有一個子結點)的結點。
  • 9.度:一個結點的子結點的個數稱爲該結點的度數。二叉樹中節點的度爲0,1,2。
  • 10.層:二叉樹根的層數爲0,從根結點到任意一個結點的路徑長爲該結點的層數。
  • 11.高度/深度:樹中結點的最大層數爲該樹的高度。單點樹的高度爲0。

二叉樹的五種形態

image

二叉樹的性質

  • 1.非空二叉樹中第i層至多有 2^i 個結點。
  • 2.高度爲 h 的二叉樹至多有 2^(h+1) - 1個結點。

滿二叉樹

  • 1.若是二叉樹中全部分支結點的度數都爲2,則該樹爲滿二叉樹。
  • 2.滿二叉樹的葉結點比分支結點多一個

徹底二叉樹

  • 1.假設二叉樹高度爲h,若是第0層到第h-1層的結點都滿,最下一層的結點不滿,而全部結點在最左側連續排列,空位在右邊,則該樹爲徹底二叉樹。 image

經常使用

二叉樹可做爲 DFS和BFS兩種搜索算法的基礎數據結構,由於二叉樹是一種遞歸的結構,在搜索算法中假設某種狀態可選可不選時可抽象爲二叉樹,可是這種遞歸操做必須結合 回溯和 剪枝技巧保證算法的時間複雜度。 樹形結構在計算機領域應用普遍,好比 linux 文件系統,MySQL數據庫索引等。算法

預告

掌握二叉樹可從如下幾個方面入手:數據庫

  • 1.二叉樹的特性
  • 2.二叉樹實現
  • 3.二叉樹搜索
  • 4.二叉樹算法 leetcode
相關文章
相關標籤/搜索