考研二战_数据结构_day9_树

目录

前言

一、树

1 树的基本定义

2 树的术语

        2.1 树的属性 

        2.2 空树:节点数为0的树

        2.3 非空树的特性

        2.4 有序树:逻辑上看,树中结点的各子树从左至右是有次序的,

        2.5 无序树:逻辑上看,树中结点的各子树从左至右是无次序的

        2.6 森林:是 m(m ≥ 0)棵互不相交的树的集合

3 常见的考点

二、二叉树

1 二叉树的基本概念

2 几种特殊的二叉树

        2.1 满二叉树

        2.2 完全二叉树

        2.3 二叉排序树

        2.4 平衡二叉树

3 常见考点

三、二叉树的顺序存储

后记


前言

        前一段时间一直在忙毕设,昨天终于弄好了,复习重新开始。

        今天主要复习一下树的相关知识。


一、树

1 树的基本定义

        什么是树?我想这有点难以解释,因为在我的理解中,树就是一种抽象出来的数据结构类型,把图画出来就像是一个倒置的树冠。如下图就是一棵树。

2 树的术语

        2.1 树的属性 

                1、结点的层次深度)——从上往下数(一般默认从1开始数

                2、结点的高度——从下往上数

                3、树的高度深度)——总共多少层

                4、结点的——有几个孩子(分支)

                5、树的——各结点的度的最大值

        2.2 空树:节点数为0的树

        2.3 非空树的特性

                1、有且仅有一个根结点

                2、没有后继的结点称为“叶子结点”(终端结点)

                3、有后继的结点称为“分支结点”(非终端结点)

                4、除了根结点外,任何一个结点都有且仅有一个前驱

                5、每个结点可以有0个或多个后继

                6、若结点数 n > 1,则能将其余结点分为 m 个互不相交的有限集合,每个集合本身又是一棵树,并且称为根结点的子树

        2.4 有序树:逻辑上看,树中结点的各子树从左至右是有次序的

        2.5 无序树:逻辑上看,树中结点的各子树从左至右是无次序的

        2.6 森林:是 m(m ≥ 0)棵互不相交的树的集合

3 常见的考点

        1 结点数 = 总度数 + 1

        2 度为 m 的树第 i 层最多有 m^{i-1} 个结点

        3 高度为 h 的 m 叉树最多有 m^{h-1} 个叶结点,\frac{m^{h}-1}{m-1}个结点。

        4 度为 m 的树与 m 叉树比较:

        (1)若高度一致,则总结点数最多数量一致

        (2)若高度 h 一致,度为 m 的树最少有 h + m - 1 个结点; m 叉树最少有 h 个结点

        (3)度为 m 的树不可以为空,m 叉树可以为空

        (4)度为 m 的树至少有一个结点的度为 m ,m 叉树的结点的度都小于等于 m 


二、二叉树

1 二叉树的基本概念

        1、二叉树是 n(n ≥ 0)个结点的有限集合

        2、当 n = 0 时为空二叉树

        3、由一个根节点和两个互不相交的被称为根的左子树右子树组成。左子树和右子树又分别是一棵二叉树

        4、特点:每个结点至多有两棵子树;左右子树不能颠倒(有序树

        5、五种状态:空二叉树;只有左子树;只有右子树;只有根节点;左右子树都有

2 几种特殊的二叉树

        2.1 满二叉树

        如下图所示即为满二叉树

        特点:

        1、仅最后一层为叶子结点

        2、不存在度为 1 的结点

        3、按层序从 1 开始编号,结点 i 的左孩子为 2i ,右孩子为 2i + 1 ;结点 i 的父节点为 i/2(向下取整)(如果存在)

        2.2 完全二叉树

        如下图所示,相当于满二叉树的最后一层没有填满的情况。

        特点:

        1、只有最后两层有叶结点

        2、最多只有一个度为 1 的结点

        3、与满二叉树特点 3 相同的特点

        4、若总结点数为 n ,则结点位序 i\leq \left \lfloor n/2 \right \rfloor 时为分支结点;i> \left \lfloor n/2\right \rfloor 时为叶子结点

        2.3 二叉排序树

        如图所示,排序树顾名思义,就是起到排序作用的树。因此,树中数据需要以一定的规律去存储。例如:1、左子树所有结点的数据小于根结点的数据;2、右子树所有结点的数据小于根结点的数据;3、左子树与右子树也是二叉排序树。

        2.4 平衡二叉树

         在二叉排序树的基础上,左右子树的深度之差不超过 1

3 常见考点

        1、若非空二叉树中度为 0、1、2 的结点个数分别为 a、b、c,则 a = c + 1,即叶子结点比二分支结点多一个,a + c 一定为奇数。

         2、m 叉树的第 i 层最多有 m^{i-1} 个结点

        3、高度为 h 的 m 叉树最多有\frac{m^{h}-1}{m-1}个结点

        4、具有 n 个结点的满二叉树的高度 h 为 \left \lfloor log_{2}(n+1) \right \rfloor 或者 \left \lfloor log_{2}n \right \rfloor+1 

        5、与考点 1 结合,完全二叉树中,度为 1 的结点数(下简称 b)为 0 或 1 。因此当完全二叉树的总结点数为偶数时,b = 1;当总结点数为奇数时,b = 0


三、二叉树的顺序存储

        由于当采用顺序存储时,可以将结点的位序与顺序表的位序相对应起来;同时考虑到存储的紧凑,所以仅适用于完全二叉树的存储。若不为完全二叉树,最坏情况下只有右孩子结点,会造成存储空间的大量浪费。


后记

        今天内容有点少,全是概念性的东西,没有什么实现的内容。

        明天会复习二叉树的链式存储以及基本操作,还会复习一部分的线索二叉树的内容。我等等先去试着实现一下。

        虽然毕设是弄完了,但是还有答辩,后续可能还会停一段时间吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
哈夫曼是一种最优二叉,它的构造算法如下:首先将n个结点作为n棵仅含有一个根结点的二叉,构成一个森林F。然后,生成一个新结点,并从F中找出根结点权值最小的两棵作为它的左右子,新结点的权值为两棵子根结点的权值之和。接着,从F中删除这两个,并将新生成的加入到F中。重复以上步骤,直到F中只有一棵为止。 哈夫曼具有以下性质: 1)每个初始结点都会成为叶节点,双支结点都为新生成的结点 2)权值越大离根结点越近,反之权值越小离根结点越远 3)哈夫曼中没有结点的度为1 4)n个叶子结点的哈夫曼的结点总数为2n-1,其中度为2的结点数为n-1。 哈夫曼的应用之一是解决编码问题。在编码中,我们使用二进制来表示字符,其中固定长度编码和前缀编码是两种常见的编码方式。前缀编码要求没有一个编码是另一个编码的前缀,而哈夫曼构造的编码正是满足前缀编码的要求。 所以,哈夫曼数据结构考研中是一个重要的概念,它可以用于构造最优二叉和解决编码问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [数据结构考研笔记(十六) ——哈夫曼、编码应用](https://blog.csdn.net/sf9090/article/details/109154652)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值