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

二叉樹的性質
- 1.非空二叉樹中第i層至多有 2^i 個結點。
- 2.高度爲 h 的二叉樹至多有 2^(h+1) - 1個結點。
滿二叉樹
- 1.若是二叉樹中全部分支結點的度數都爲2,則該樹爲滿二叉樹。
- 2.滿二叉樹的葉結點比分支結點多一個
徹底二叉樹
- 1.假設二叉樹高度爲h,若是第0層到第h-1層的結點都滿,最下一層的結點不滿,而全部結點在最左側連續排列,空位在右邊,則該樹爲徹底二叉樹。

經常使用
二叉樹可做爲 DFS和BFS兩種搜索算法的基礎數據結構,由於二叉樹是一種遞歸的結構,在搜索算法中假設某種狀態可選可不選時可抽象爲二叉樹,可是這種遞歸操做必須結合 回溯和 剪枝技巧保證算法的時間複雜度。 樹形結構在計算機領域應用普遍,好比 linux 文件系統,MySQL數據庫索引等。算法
預告
掌握二叉樹可從如下幾個方面入手:數據庫
- 1.二叉樹的特性
- 2.二叉樹實現
- 3.二叉樹搜索
- 4.二叉樹算法 leetcode