background image

表达式中的每一个运算符在树中对应一个结点,称为运算符结点。
运算符的每一个运算对象在树中为该运算符结点的子树(在树中的顺序为从左到右)。
运算对象中的单变量均为叶子结点。
二、二叉树及其基本性质
1、什么是二叉树
二叉树是一种很有用的非线性结构。二就树具有以下两个特点:
非空二叉树只有一个根结点;
每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
由以上特点可以看出,在二叉树中,每一个结点的度最大为 2,即所有子树(左子树或
右子树)也均为二叉树,而树结构中的每一个结点的度可以是任意的。另外,二叉树中的
每一个结点的子树被明显地分为左子树与右子树。可以没有其中的一个,也可以全没有。
二叉树的基本性质
性质 1:在二叉树的第 K 层上,最多有(K≥1)个结点。
性质 2:浓度为 M 的二叉树最多有 2m-1 个结点。
深度为 m 的二叉树是指二叉树共有 m 层。
性质 3:在任意一棵二叉树中度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个。
性质 4:具有 n 个结点的二叉树,其深度至少为[ log2n]+1,其中[ log2n]表示取的整数部分。
满二叉树与完全二叉树
满二叉树与完全二叉树是两种特殊形态的二叉树。
满二叉树
所谓满二叉树是指这样的一种二叉树;除最后一层外,每一层上的所有结点都有两个子
结点。这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第 K
层上有 2K-1 个结点,且深度为 m 的满二叉树有 2m-1 个结点。
完全二叉树
所谓完全二叉树是指这样的二叉树,除最后一层外,每一层上的结点数均达的最大值;
在最后一层上只缺少右边的若干结点。
列确切地说,如果从根结点起,对二叉树的结点自上而下、自左至右用自然数进行边疆编
号,则深度为 m、且有 n 个结点的二叉树,当且仅当其每一个结点都与深度为 m 的满二叉
树中编号从 1 到 n 的结点一一对应时,称之为完全二叉树。
对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现;对于任何一个结点,
若其右分支下的子孙结点的最大层次为 p,则其左分支下的子孙结点的最大层次或为 p,
或为 p+1。
由满二叉树与完全二叉树的特点可以看出,满二叉树也是完全二叉树,而完全二叉树一
般不是满二叉树。
完全二叉树还具有以下两个性质:
性质 5:具有 n 个结点的完全二叉树的深度为[ log2n]+1。
性质 6:设完全二叉树共有 n 个结点。如果从根结点开始,按层序(每一层从左到右)用
自然数 1,2 …

, ,n 给结点进行编号,则对于编号为 k (k=1,2,…n)的结点有以下结论:

若 k=1 , 则 该 结 点 为 根 结 点 , 它 没 有 父 结 点 ; 若 k>1 , 则 该 结 点 的 父 结 点 编 号 为
INT(k/2)。
若 2k≤n,则编号为 k 的结点的左子结点编号为 2k ;否则该结点无左子结点(显然也没有
右子结点)。
若 2k+1≤n,则编号为 k 的结点的右子结点编号为 2k+1;否则该结点无右子结点。
三、二叉树的存储结构