树和二叉树

一、树的定义

 1.路径长度:该路径所通过的结点数目减1(即1路径上的分支数目);

2.每个结点的后继结点被称为该结点的孩子节点;相应的,该结点称为汉子节点的双亲结点
具有同一双亲结点的孩子结点互为兄弟结点
每个节点对应子树上=中的所有结点(除自身外)称为该结点的子孙结点
把从根结点到达某个结点的路径上经过的所有结点(除自身外)称为该结点的祖先结点

二、树的性质

性质 1:树中的结点数等于所有结点的度数之和加1。

例如:

性质 2:度为m的树种第i层上最多有 m^{i-1}个结点(i ≥ 1)。

性质 3:高度为h的m次数最多有\frac{m^{h}-1}{m-1}个结点。

性质 4:具有n个结点的m次树的最小高度为:log_{m}(n(m-1)+1)

三、二叉树

 1.二叉树是一个有限的结点集合,这个集合或者为空,或者由一个根结点和两颗互不相交的称为左子树和右子树的二叉树组成。

2.在一棵二叉树中,如果所有分支结点都有左右孩子结点,并且叶子结点都集中在二叉树的最下面一层,这样的二叉树称为满二叉树

  非空满二叉树的特点:
  叶子结点都在最下面一层,且只有度为0和度为2的结点

3.若二叉树中最多只有下面两层的结点度数可以小于2,并且最下面一层的叶子结点都依次排列在该层最左边的位置上,则这样的二叉树称为完全二叉树
        满二叉树是完全二叉树的一种特例

四、区分二叉树度为2的树(2次树)

1.度为2的树种至少有一个结点的度为2,而二叉树没有这种要求。

2.度为2的树不区分左、右子树,而二叉树是严格区分左、右子树的。 

3.二叉树是有序的,其次序不能随意颠倒。

五、二叉树的性质

性质 1:非空二叉树上的叶子结点数等于 双分支结点数加1。
    即:n_{0}=n_{2}+1

例如:

性质 2:非空二叉树上的第i层上最多有2^{i-1}个结点(i ≥ 1)。

性质 3:高度为h的二叉树最多有2^{h}-1个结点(h ≥ 1)。

例如:

 

性质 4:完全二叉树中层序编号为i的结点(1 ≤ i ≤ n,n ≥ 1,n为结点数)有以下性质

(1)若n为奇数,则每个分支结点既有左孩子结点,又有右孩子结点;
         若n为偶数,则编号最大的分支结点(编号为【n/2】)只有左孩子结点,没有右孩子结点,其余分支结点都有左、右孩子结点。
(2)若编号为i的结点有左孩子结点,则左孩子结点的编号为2i;若编号为i的结点有右孩子结点,则右孩子结点的编号为2i+1。
(3)除根结点以外,若一个结点的编号为i,则它的双亲结点编号为【i / 2】。

性质 5:具有n个(n > 0)结点的完全二叉树的高度为【log_{2}(n+1)】或【log_{2}n+1】。

六、森林、树转化为二叉树

1.树中所有相邻兄弟之间加一条连线。
2.对树中的每个结点都只保留它与长子(即最左边的孩子结点)之间的连线,删除与其它孩子之间的连线。
3.以树的根为轴心,将整棵树顺时针转动45°,使之结构分明。

 七、二叉树还原为树、森林

1.若某结点是其双亲的左孩子,则把该结点的左孩子、右孩子的右孩子等都与该结点的双亲结点用连线连起来。
2.删除原二叉树中所有双亲结点与右孩子结点之间的连线。
3.整理由前面两步得到的树,即以根结点为轴心,逆时针转动45°,使之结构分明。

实际上,二叉树的还原就是将二叉树中的左分支保持不变,将二叉树中的右分支还原成兄弟关系。 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值