原文:http://lovemitter.blog.163.com/blog/static/165798134201181503158706/
1.树的度:树节点的子树个数称为度。节点最大的度,称为树的度。最大度为2叫做二叉树。
2.树的深度|高度:其实,就是树的层数。根节点深度为1。3.二叉树的五条性质:
(1)在二叉树的第i层上至多有2^(i-1)个节点。(i>=1)
(2)深度为K的二叉树至多有2^K - 1 个节点。(K>=1)
(3)叶子节点为N0,度为2的节点数为N1,则N0 = N1 + 1 。
(4)具有N个节点的完全二叉树的深度为floor(log2(n)) +1 。
(5)对一个N个节点完全二叉树,按照层次编号,从左到右,对于任意一个节点i(1<=i<=N),则有下列性质。
A>若i=1,则i为根,若i>1,则双亲节点为floor(i/2) 。
B>若2i>N,则节点i无左孩子节点,否则,i左孩子节点为2i。
C>若2i+1>N,则节点i无右孩子节点,否则,i有孩子节点为2i + 1 。
4.二叉排序树性质:左边值最小,中间第二,右边最大。
5.二叉树遍历。所谓前序遍历、中序遍历、后序遍历,主要是针对根节点来说的。
前遍历就是先根节点,再左右。中遍历就是先左,再中,后右。后遍历,就是先左,再右,最后根。
----------------------------------------------
满二叉树的叶结点个数为N,则它的结点总数为2N-1。所以用数组来存一个叶结点最多为N的树时,要开至少2N-1的空间。
2.两个重要的概念:
(1)完全二叉树——只有最下面的两层结点度小于2,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树;
(2)满二叉树——除了叶结点外每一个结点都有左右子女且叶结点都处在最底层的二叉树,。
3.二叉树的性质
(1) 在二叉树中,第i层的结点总数不超过2^(i-1);
(2) 深度为h的二叉树最多有2h-1个结点(h>=1),最少有h个结点;
(3) 对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,
则N0=N2+1;
(4) 具有n个结点的完全二叉树的深度为int(log2n)+1
(1)先序遍历
访问根;按先序遍历左子树;按先序遍历右子树
(2)中序遍历
按中序遍历左子树;访问根;按中序遍历右子树
(3)后序遍历
按后序遍历左子树;按后序遍历右子树;访问根