基本概念
樹:
二叉樹:任意節點最多有2個子樹的樹
滿二叉樹:對於深度爲k,有且只有2^k-1 個節點的二叉樹,又稱完美二叉樹
完全二叉樹:深度爲k,有n個節點的二叉樹,當且僅當其每一個節點都與深度爲k的滿二叉樹中,序號爲1至n的節點一一對應 (摘自維基百科)
線索二叉樹:一個二叉樹通過如下的方法“穿起來”:所有應該爲空的右孩子指針指向該節點在中序序列中的後繼,所有應該爲空的左孩子指針指向該節點的中序序列的前驅。
正則二叉樹:完全二叉樹按左右子樹對換
排序二叉樹:任意左子樹的節點關鍵字都不大於右子樹的節點關鍵字的二叉樹
AVL:任意左右子樹的高度差不大於1的排序二叉樹
紅黑樹:
性質1. 節點是紅色或黑色。
性質2. 根是黑色。
性質3. 所有葉子都是黑色(葉子是NIL節點)。
性質4. 每個紅色節點必須有兩個黑色的子節點。(從每個葉子到根的所有路徑上不能有兩個連續的紅色節點)
性質5. 從任一節點到其每個葉子的所有簡單路徑都包含相同數目的黑色節點。
最優二叉查找樹(哈夫曼樹):給定n個權值所構成帶權路徑長度最小的二叉樹。
遍歷:
前序遍歷:根左右
中序遍歷:左根右
後序遍歷:左右根
層次遍歷:按深度由低到高遍歷