树的概念、性质、存储、遍历

树的概念、性质、存储、遍历

基本概念:
树是n(n≥0)个结点的有限集合T(Tree)。当n=0时,称为空树;当n>0时, 该集合满足如下条件:
(1) 其中必有一个称为根(root)的特定结点,它没有直接前驱,但有零个或多个直接后继。
(2) 其余n-1个结点可以划分成m(m≥0)个互不相交的有限集T1,T2,T3,…,Tm,其中Ti又是一棵树,称为根root的子树。 每棵子树的根结点有且仅有一个直接前驱,但有零个或多个直接后继。
结点:包含一个数据元素及若干指向其它结点的分支信息。
结点的度:一个结点的子树个数称为此结点的度。
叶结点:度为0的结点,即无后继的结点,也称为终端结点。
分支结点:度不为0的结点,也称为非终端结点。
孩子结点:一个结点的直接后继称为该结点的孩子结点。
双亲结点:一个结点的直接前驱称为该结点的双亲结点。
兄弟结点:同一双亲结点的孩子结点之间互称兄弟结点。
祖先结点:一个结点的祖先结点是指从根结点到该结点的路径上的所有结点。在图1中,结点K的祖先是A、B、E。
子孙结点:一个结点的直接后继和间接后继称为该结点的子孙结点。在图1中,结点D的子孙是H、I、 J、 M。
树的度: 树中所有结点的度的最大值。
结点的层次:从根结点开始定义,根结点的层次为1,根的直接后继的层次为2,依此类推。
树的高度(深度): 树中所有结点的层次的最大值。
有序树:在树T中,如果各子树Ti之间是有先后次序的,则称为有序树。
森林: m(m≥0)棵互不相交的树的集合。将一棵非空树的根结点删去,树就变成一个森林;反之,给森林增加一个统一的根结点,森林就变成一棵树。
定义:我们把满足以下两个条件的树形结构叫做二叉树(Binary Tree):
(1) 每个结点的度都不大于2;
(2) 每个结点的孩子结点次序不能任意颠倒。
由此定义可以看出,一个二叉树中的每个结点只能含有0、 1或2个孩子,而且每个孩子有左右之分。我们把位于左边的孩子叫做左孩子,位于右边的孩子叫做右孩子。.

   深度为k且有2k-1个结点的二叉树。在满二叉树中,每层结点都是满的,即每层结点都具有最大结点数。 图3(a)所示的二叉树,即为一棵满二叉树。
    满二叉树的顺序表示,即从二叉树的根开始, 层间从上到下, 层内从左到右,逐层进行编号(1, 2, …, n)。例如图3(a)所示的满二叉树的顺序表示为(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)。

完全二叉树:
深度为k,结点数为n的二叉树,如果其结点1n的位置序号分别与满二叉树的结点1n的位置序号一一对应(也就是深度为1~k-1的所有结点都是满二叉树,第k层结点全部都靠在左边),则为完全二叉树, 如图3(b)所示。
满二叉树必为完全二叉树, 而完全二叉树不一定是满二叉树。

二叉树的性质

性质1: 在二叉树的第i层上至多有2i-1个结点(i≥1)。
证明: 用数学归纳法。
归纳基础:当i=1时,整个二叉树只有一根结点,此时2i-1=20=1,结论成立。
归纳假设:假设i=k时结论成立,即第k层上结点总数最多为2k-1个。
现证明当i=k+1时, 结论成立:
因为二叉树中每个结点的度最大为2,则第k+1层的结点总数最多为第k层上结点最大数的2倍,即2×2k-1=2(k+1)-1,故结论成立。 .
性质2: 深度为k的二叉树至多有2k-1个结点(k≥1)。
证明:因为深度为k的二叉树,其结点总数的最大值是将二叉树每层上结点的最大值相加,所以深度为k的二叉树的结点总数至多为
在这里插入图片描述
故结论成立。
性质3: 对任意一棵二叉树T,若终端结点数为n0,而其度数为2的结点数为n2,则n0=n2+1。
证明:设二叉树中结点总数为n, n1为二叉树中度为1的结点总数。
因为二叉树中所有结点的度小于等于2,所以有
n=n0+n1+n2
设二叉树中分支数目为B(其实就是边数), 因为除根结点外, 每个结点均对应一个进入它的分支,所以有
n=B+1
又因为二叉树中的分支都是由度为1和度为2的结点发出, 所以分支数目为
B=n1+2n2
整理上述两式可得到
n=B+1=n1+2n2+1
将n=n0+n1+n2代入上式,得出n0+n1+n2=n1+2n2+1,整理后得n0=n2+1,故结论成立。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值