重学数据结构:树的定义、性质

树的定义

树是n(n≥0)个结点的有限集合,n= 0时,称为空树,这是一种特殊情况。在任意一棵非空树中应满足:1)有且仅有一个特定的称为根的结点。2)当n> 1时,其余结点可分为m(m> 0)个互不相交的有限集合T1, T2,…, Tm,其中每个集合本身又是一棵树,并且称为根结点的子树。

树的性质

  1. 节点数=度数+1

  2. 度为m的树和m叉树的关系

度为m的树m叉树
定义各节点的度的最大值各节点最多只能有m个孩子的树
相同点树的所有节点 ≤ \leq m(最多m个孩子)树的所有节点 ≤ \leq m(最多m个孩子)
不同点1至少有一个节点=m所有的节点的度可以 ≤ \leq m
不同点2不能为空树,至少有m+1个节点可以为空树
  • 度为m的树第i层最多有mi-1个节点

  • m叉树第i层最多有mi-1个节点

  • 高度为h的m叉树最多的节点有(等差数列求和=m0+m1+m2+…+mh
    m h − 1 m − 1 \frac{m^h-1}{m-1} m1mh1

  • 高度为h的m叉树至少有h个节点

  • 高度为h且度为m的树至少有 h+m-1个节点

  • 具有n个结点的m叉树的最小高度为[logm(n(m -1) + 1)]

推导过程:

  • n ≤ m h − 1 m − 1 n\leq\frac{m^h-1}{m-1} nm1mh1
  • n ( m − 1 ) + 1 ≤ m h n(m-1)+1 \leq m^h n(m1)+1mh
  • h m = l o g m ( n ( m − 1 ) + 1 ) h_m=log_m(n(m -1) + 1) hm=logm(n(m1)+1)

二叉树的定义

二叉树是n(n≥0)个结点的有限集合:①或者为空二叉树,即n= 0。②或者由一个根结点和两个互不相交的被称为根的左子树和右子树组成。左子树和右子树又分别是一棵二叉树。特点:①每个结点至多只有两棵子树②左右子树不能颠倒(二叉树是有序树)

满二叉树和完全二叉树的区别

在这里插入图片描述

满二叉树完全二叉树
定义一棵高度为h,且含有2h -1个结点的二叉树当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树
特点1只有最后一层有叶子结点只有最后两层有叶子结点
特点2不存在度为1的结点最多只有一个度为1的结点
特点3按层序从1开始编号,结点i的左孩子为2i,右孩子为2i+1;结点i的父节点为i/2(如果有的话)与满二叉树一样
特点4i≤i/2为分支结点,i>i/2为叶子结点

二叉树的性质

  1. 设非空二叉树中度为0、1和2的结点个数分别为n0、n1和n2,则n0= n2+ 1(叶子结点比二分支结点多一个)

  2. 二叉树第i层至多有2i-1个结点(i≥1)

  3. m叉树第i层至多有mi-1个结点(i≥1)

  4. 高度为h的二叉树至多有2h−1个结点(满二叉树)

  5. 高度为h的m叉树至多结点有
    m h − 1 m − 1 \frac{m^h-1}{m-1} m1mh1

完全二叉树的性质

  1. 具有n个(n > 0)结点的完全二叉树的高度h为log2(n+1)或log2n+1
  2. 对于完全二叉树,可以由的结点数n推出度为0、1和2的结点个数为n0、n1和n2。
    完全二叉树最多只有一个度为1的结点,即

n1=0或1
n0= n2+ 1->n0+ n2一定是奇数

推导出

若完全二叉树有2k个(偶数)个结点,则必有n1=1,n0=k,n2=k-1
若完全二叉树有2k-1个(奇数)个结点,则必有n1=0,n0=k,n2=k-1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值