左子树和右子树。在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个结点既没有左子树也没有右子树时,该结点即为叶子结点。r
(2)二叉树的基本性质r
二叉树具有以下几个性质:r
性质1:在二叉树的第k层上,最多有2k1(k≥1)个结点;r
性质2:深度为m的二叉树最多有2m1个结点;r
性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。r
性质4:具有
个结点的二叉树,其深度至少为[log2
]1,其中[log2
]表示取log2
的整数部分。r
r
小技巧:在二叉树的遍历中,无论是前序遍历,中序遍历还是后序遍历,二叉树的叶子结点的先后顺序都是不变的。r
3、满二叉树与完全二叉树r
满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k1个结点,且深度为m的满二叉树有2m-1个结点。r
完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。r
对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现:对于任何一个结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为p1。r
完全二叉树具有以下两个性质:r
性质5具有
个结点的完全二叉树的深度为[log2
]1。r
性质6设完全二叉树共有
个结点。如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……,
给结点进行编号,则对于编号为k(k1,2,……,
)的结点有以下结论:r
①若k1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点编号为INT(k2)。r
②若2k≤
,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。r
③若2k1≤
,则编号为k的结点的右子结点编号为2k1;否则该结点无右子结点。r
考点8二叉树的遍历r
考试链接:r
考点8在笔试考试中考核几率为30,分值为2分,读者应该熟练掌握各种遍历的具体算法,能由两种遍历的结果推导另一种遍历的结果。r
在遍历二叉树的过程中,一般先遍历左子树,再遍历右子树。在先左后右的原则下,根据访问根结点的次序,二叉树的遍历分为三类:前序遍历、中序遍历和后序遍历。r
(1)前序遍历:先访问根结点、然后遍历左子树,最后遍历右子树;并且,在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。r
(2)中序遍历:先遍历左子树、然后访问根结点,最后遍r