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个单元。
由此可知,顺序存储不适合树的物理存储,浪费空间。
链式存储
含有两个指针域的结点结构
数据域存放数据,两个指针域分别指向左孩子和右孩子的地址,
这种存储方式寻找双亲结点和繁琐,故采用 还有三个指针域的结点