六 树和二叉树

6 树的定义

树(Tree)是n(n >= 0)个节点的有限集。

6.2 树的基本术语

结点:包含一个数据元素及若干个只想其子树的分支
结点的度:结点拥有的子树数
叶子结点: 度位0的结点
树的度:树内各结点的度的最大值
孩子:结点的分支结点
双亲:

6.3 二叉树

特点:每个结点最多有两棵子树,并且,二叉树的子树有左右之分,其次序不饿能任意改变。

6.4 二叉树的性质(掌握)

性质一:在二叉树的第i层至多有2i-1个结点(i>=1)
六 树和二叉树
六 树和二叉树

性质2:深度为k的二叉树至多有2k-1个结点(k>=1)
六 树和二叉树六 树和二叉树
六 树和二叉树
性质三:对任何一棵二叉树T,如果其叶子数为n0,度为2的
结点数为n2,则n0= n2+1。
证明:
总边数 = n2×2 + n1×1
n -1 = n2×2 + n1×1
n2 + n1+ n0 = n2×2 + n1×1 +1
n0= n2+1

性质四:具有n个结点的完全二叉树的深度为Llog2n]+ 1。
注: Lx」:称作x的底,表示不大于x的最大整数
六 树和二叉树
性质五:如果对一棵有n个结点的完全二叉树(深度为Llog2n]+1)的结点按层序编号(从第1层到第Llog2n]+1层,每层从左到右),则对任一结点i(1<=i<=n),有:
六 树和二叉树
证明:

6.5 二叉树的物理存储

顺序存储:用一组连续的存储地址存储,

六 树和二叉树
存储方式:
六 树和二叉树

不存在的结点用‘0’表示
六 树和二叉树
六 树和二叉树
最坏的情况是 一个深度为k的二叉树只有k个结点,却要占用2k-1个单元。
由此可知,顺序存储不适合树的物理存储,浪费空间。

链式存储

含有两个指针域的结点结构
六 树和二叉树
数据域存放数据,两个指针域分别指向左孩子和右孩子的地址,
六 树和二叉树
这种存储方式寻找双亲结点和繁琐,故采用 还有三个指针域的结点
六 树和二叉树
六 树和二叉树