本人资深学酥,最近刚好讲完二叉树,借鉴了很多人的,并非原创,做一下阶段性的总结和复习吧。
一.二叉树的定义:
1.二叉树是有限个节点的集合,这个集合或者是空集,或者由一个根节点和两棵不相交的二叉树组成,其中一颗叫做根的左子树,另一棵叫做根的右子树。(从定义上看递归很明显,在递归遍历时就是用定义做的)。
2.特殊的二叉树:满二叉树(pow(2,k)-1个结点),完全二叉树。
完全二叉树的性质:
(1).所有的节点都出现在k或k-1层。
(2).k-1层的所有叶节点都在非终结结点的右边。
(3).除k-1层的最右非终结结点可能有一个或两个分支之外,其余非终结结点都要有两个分支。
数学性质:
(1).具有n个结点的完全二叉树的高度为log2的n次方下取整+1 (下取整: 不大于x的最大整数。)
(2).若对有 n 个结点的完全二叉树进行顺序编号 (1 ≤ i ≤ n) ,那么:
对于编号为 i(i ≥ 1) 结点 :
当 i=1 时,该结点为根,它无双亲结点;
当 i>1 时,该结点的双亲结点编号为 ;
若 2i ≤ n ,它有编号为 2i 的左孩子,否则没有左孩子;
若 2i+1 ≤ n ,则它有编号为 2i+1 的右孩子,否则没有右孩子。