树的基本概念
- 高度:节点n的高度为从节点n到树叶节点的最长路径长度;树叶节点高度为0;一棵树的高度为根节点的高;
- 深度:节点n的深度为从节点n到根节点的路径长度;根节点深度为0;一棵树的深度为最深的树叶节点的深度,该深度等于树的高;
树的表示法:
二叉树
概念
注意二叉树的左子树和右子树是有顺序的,不能颠倒,比如三个节点的二叉树就有五种不同的形态。
特殊二叉树:
- 斜二叉树
- 满二叉树
- 完全二叉树:按层序编号,其节点的编号与同样深度的满二叉树节点编号一致。其叶子节点只会出现在最下面两层。
性质
- 二叉树的第i层至多有 2i−1 个节点
- 深度为k的二叉树至多有 2k−1 个节点
- 对任意二叉树,叶节点数目为 n0 ,度为2的节点数目为 n2 ,则 n0=n2+1
- 具有n个结点的完全二叉树深度为
存储结构
- 顺序存储
用数组存储,适合完全二叉树 - 链式存储
遍历
根节点相对左右子树打印的顺序。
- 前序遍历
- 中序遍历
- 后序遍历
充分理解其递归和非递归两种方式遍历的过程和代码实现。
二叉查找树(Binary Search Tree)
AVL树
红黑树
红黑树深入剖析及Java实现
红黑树相关原理介绍
B树
平衡树