基本性质(1)什么是二叉树二叉树是一种很有用的非线性结构,它具有以下两个特点:1)非空二叉树只有一个根结点;2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。:根据二叉树的概念可知,二叉树的度可以为0(叶结点)、1(只有一棵子树)或2(有2棵子树)。(2)二叉树的基本性质性质1性质2性质3在二叉树的第k层上,最多有深度为m的二叉树最多有个个结点。
m个结点。1k2112k
在任意一棵二叉树中,度数为0的结点(即叶子结点)总比度为2的结点多一个。性质4,其中表示取log2
1的整数部分。log2
具有
个结点的二叉树,其深度至少为3、满二叉树与完全二叉树
log2
满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。:根据完全二叉树的定义可得出:度为1的结点的个数为0或1。下图a表示的是满二叉树,下图b表示的是完全二叉树:
01378941011512132614738914
0256
a满二叉树
b完全二叉树
完全二叉树还具有如下两个特性:性质5性质6具有
个结点的完全二叉树深度为。
log2
1
设完全二叉树共有
个结点,如果从根结点开始,按层序(每一层从左到右)用自然数1,2,,
给结点进行编号,则对于编号为k(k1,2,,
)的结点有以下结论:①若k1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点的编号为INTk2。②若2k≤
,则编号为k的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。③若2k1≤
,则编号为k的右子结点编号为2k1;否则该结点无右子结点。4、二叉树的存储结构在计算机中,二叉树通常采用链式存储结构。与线性链表类似,用于存储二叉树中各元素的存储结点也由两部分组成:数据域和指针域。但在二叉树中,由于每一个元素可以有两个后件(即两个子结点),因此,用于存储二叉树的存储结点的指针域有两个:3
f一个用于指向该结点的左子结点的存储地址,称为左指针域;另一个用于指向该结点的右子结点的存储地址,称为右指针域。:一般二叉树通常采用链式存储结构,对于满二叉树与完全二叉树来说,可以按层序进行顺序存储。5、二叉树的遍历二叉树的遍历是指不重复地访问二叉树中的所有结点。二叉树的遍历可以分为以下三种:(1)前序遍历(DLR):若二叉树为空,则结束返回。否则:首先访问根结点,然后遍历左子树,最后遍r