基本概念
树:
二叉树:任意节点最多有2个子树的树
满二叉树:对于深度为k,有且只有2^k-1 个节点的二叉树,又称完美二叉树
完全二叉树:深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点一一对应 (摘自维基百科)
线索二叉树:一个二叉树通过如下的方法“穿起来”:所有应该为空的右孩子指针指向该节点在中序序列中的后继,所有应该为空的左孩子指针指向该节点的中序序列的前驱。
正则二叉树:完全二叉树按左右子树对换
排序二叉树:任意左子树的节点关键字都不大于右子树的节点关键字的二叉树
AVL:任意左右子树的高度差不大于1的排序二叉树
红黑树:
性质1. 节点是红色或黑色。
性质2. 根是黑色。
性质3. 所有叶子都是黑色(叶子是NIL节点)。
性质4. 每个红色节点必须有两个黑色的子节点。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
性质5. 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点。
最优二叉查找树(哈夫曼树):给定n个权值所构成带权路径长度最小的二叉树。
遍历:
前序遍历:根左右
中序遍历:左根右
后序遍历:左右根
层次遍历:按深度由低到高遍历