目录
序章
先来了解一下树形结构的特点
树
树的定义
定义:树是n(n>=0)个结点的有限集。
当n==0时,成为空树;
当n>0时 , 如果有且只有一个结点,则称为根(root)结点。否则其余结点可分为m(m>=0)个互不相交的有限集T1,T2....Tn,其中每一个集合本身又是一棵树,并称为树的子树。
就像这棵树,1就是她的根,而2(4,5),3,6则是她的子树。
树的基本术语
接下来我们通过一棵树来加深一下各个术语的含义;
从整张图里分析一下:A的结点的度为3,因为他有B,C,D所组成的子树。
由此可推B(2),C(1),D(3),E(2),F(0),G(0),H(1),I(0),J(0),k(0),L(0),M(0)。
所以树的度为3,因为树内各节点度的最大值就是3。
不难发现,分支结点就是 度!=0 的结点,叶子就是 度 == 0 的结点。
这里补充一点,
有序树:树中结点的各子树从左至右有次序。
无序树:没有次序。
森林:是m(M>=0)棵互不相交的树的集合。(树可以是森林但是森林不一定是树)
线性结构与树结构比较
线性结构 | 树结构 |
第一个数据元素(无前驱) | 根节点(无双亲) |
最后一个数据元素(无后继) | 叶子结点(无孩子) |
其他数据元素(一前驱一后继) | 其他结点-中间结点(一双亲,多孩子) |
一对一 | 多对多 |
二叉树
二叉树的定义
二叉树是n(n>=0)个结点的有限集,她或者是空集(n==0),或者由一个根节点及两棵互不相交的分别称作这个根的左子树和右子树的二叉树组成。
特点:
1.二叉树中的结点的度<=2.
2.子树有左右之分,其次序不能颠倒。
3.二叉树可以是空集。
二叉树的五种基本形态
二叉树的性质
性质1:在二叉树的第 i 层上至多有2^(i-1)个结点(i>=1).
这个性质很好想,因为二叉树最多就2个分支,所以每层是以2为底的指数型增长。
性质2:深度为 k 的二叉树至多有2^k-1个结点(k>=1)。
就是把每层的结点的加上,所以就成了,所以就成了等比求和,S =
或者
性质3:对任何一棵二叉树T,如果其叶子数为n(0),度为2的结点为n(2),则n(0) = n(2) + 1。
这个有些难想,我们可以简单的推理一下,度为2的