树[二叉树、二叉排序树、平衡树]

本文详细探讨了树的性质,包括节点度、节点数与度数的关系,以及二叉树、满二叉树、完全二叉树、二叉排序树和平衡二叉树的特点。还涵盖了操作如插入、删除及哈曼树与哈夫曼编码中的路径和带权路径长度计算。
摘要由CSDN通过智能技术生成

一、树的性质

节点的度:孩子个数;树中节点的最大度数就是树的度;度为0的节点就是叶子节点,度>0的节点就是分支节点。

性质:1.树的节点数=所有节点的度数之和+1;

2.度为m的树中第i层上至多有mi-1个节点(i>=1)

3.高度为h的m叉树至多由(mh-1)/(m-1)个节点,至少h个节点

4.具有n个节点的m叉树的最小高度为logm(nm-1+1,结果向上取整;

5.高度为h,度为m的树至少有h+m-1个节点;

6.有n个节点,度为m的树,高度至多为n-m+1

二、二叉树的性质

二叉树的每个节点至多有2个孩子,二叉树的子树有左右之分,次序不能颠倒,二叉树可以为空;度为2的树至少有3个节点。

非空二叉树的叶子节点数 = 度为2的节点数+1,n0=n2+1;

非空二叉树上第k层至多有2k-1个节点(k>=1);高度为h的二叉树至多有2h-1(h>=1)

有n个节点的完全二叉树的高度:向上取整(log2(n+1)或向下取整(log2n)+1

1、满二叉树

树高h,含有2h-1个节点的二叉树;

非叶子节点的节点度数是2,不存在度为1的节点,叶子节点只存在最后一层

2、完全二叉树:

只有最后两层才出现叶子节点,最后一层的叶子节点依次排列在该层的最左边的位置;

最多只有一个度为1的节点,且它只有左孩子没有右孩子

按层序编号,i<=向下取整(n/2),i为分支节点,否则为叶子节点;

n为奇数,则每个分支节点都有左右孩子,否则编号i=n/2的节点只有左孩子没有右孩子。

3、二叉排序树:左子树上所有节点的值均小于根节点,右子树上所有节点的值均大于根节点,左右子树又是一棵二叉排序树,对二叉排序树进行中序遍历会得到一个递增的有序序列。

二叉排序树的非递归查找算法:

 

定义二叉排序树:

若二叉排序树的左右子树的高度之差<=1,时间复杂度o(log2n),否则单支树时间复杂度o(n)

插入节点:

按值删除节点:

4、平衡二叉树:任意一节点的左子树与右子树的深度之差<=1;

平衡二叉树的查找时间复杂度O(log2n)

5、哈曼树与哈夫曼编码

路径:从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。

结点的路径长度:两结点间路径上的分支数。

树的路径长度:从树根到每一个结点的路径长度之和。

结点的带权路径长度:从根结点到该结点之间的路径长度与结点上权的乘积

树的带权路径长度:树中所有叶子结点的带权路径长度之和。

树的路径长度:从树根到每一个结点的路径长度之和。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值