第7章 树与二叉树学习指导

第7章 树与二叉树学习指导

ID:21645487

大小:378.00 KB

页数:17页

时间:2018-10-23

第7章 树与二叉树学习指导_第1页
第7章 树与二叉树学习指导_第2页
第7章 树与二叉树学习指导_第3页
第7章 树与二叉树学习指导_第4页
第7章 树与二叉树学习指导_第5页
资源描述:

《第7章 树与二叉树学习指导》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第7章树和二叉树7.1知识点分析1.树的定义和术语(1)树树是n(n≥0)个有限数据元素的集合。在任意一棵非空树T中,有且仅有一个特定的称为树根(Root)的结点(根结点无前驱结点),当n>1时,除根结点之外的其余结点被分成m(m>0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树,并且称为根的子树。(2)结点树的结点包含一个数据及若干指向其子树的分支。(3)结点的度一个结点所拥有的子树数称为该结点的度。(4)叶子(终端结点)度为零的结点称为终端结点,也称为叶子。(5)树的度树中各结点度的最大值称为

2、该树的度。(6)树的深度树中结点的最大层数称为树的深度或高度。2.二叉树(1)二叉树一棵非空的二叉树,每个结点至多只有两棵子树,分别称为左子树和右子树,左、右子树的次序不能任意交换,且左右子树又分别是一棵二叉树。(2)满二叉树一棵深度为h,且有2h‐1个结点的二叉树称为满二叉树。(3)完全二叉树深度为h,有n个结点的二叉树,当且仅当每一个结点都与深度为h的满二叉树中编号从1至n的结点一一对应时,称此二叉树为完全二叉树。3.关于二叉树的几个最常用的性质性质1一棵非空二叉树的第i层上最多有2i–1个结点(i≥1)。性质2深度为h的二叉树中,

3、最多具有2h-1个结点(h≥1)。性质3对于一棵有n个结点的完全二叉树,若按满二叉树的同样方法对结点进行编号,则对于任意序号为i的结点,有:(1)若i>1,则序号为i的结点的父结点的序号为i/2;(2)若2i≤n,则序号为i的结点的左孩子结点的序号为2i;(3)若2i+1≤n,则序号为i的结点的右孩子结点的序号为2i+1。4.遍历二叉树二叉树的遍历是指按某种顺序访问二叉树中的所有结点,使得每个结点都被访问,且仅被访问一次。通过一次遍历,使二叉树中结点的非线性序列转变为线性序列。(1)二叉树前序遍历二叉树前序遍历先访问根结点,再前序遍历左

4、子树,最后前序遍历右子树。(2)二叉树中序遍历二叉树中序遍历先中序遍历左子树,再访问根结点,最后中序遍历右子树。(3)二叉树后序遍历68二叉树后序遍历先后序遍历左子树,再后序遍历右子树,最后访问根结点。(4)层次遍历从根结点开始,按照自上而下,从左到右(同一层)的顺序逐层访问二叉树上的所有结点,这样的遍历称为按层次遍历。5.线索二叉树n个结点的二叉树有n+1个空指针域,可以充分利用二叉链表存储结构中的那些空指针域,来保存结点在某种遍历序列中的直接前驱和直接后继的地址信息。指向直接前驱结点或指向直接后继结点的指针称为线索,带有线索的二叉树

5、称为线索二叉树。对二叉树以某种次序遍历使其变为线索二叉树的过程称为线索化。由于二叉树的遍历方法不同,因此线索二叉树的方法也有多种。其中以中序线索化用得最多。线索二叉树的画法,先写出二叉树的某种遍历的序列,若左孩子为空,则此线索指针将指向前一个遍历次序的结点,右孩子为空,则此线索指针将指向下一个遍历次序的结点,左右不为空时,则不须画。6.恢复二叉树(1)对于已知二叉树的前序和中序序列,可以根据前序序列确定树的根(首结点),根据中序序列确定左子树和右子树。(2)对于已知二叉树的后序和中序序列,可以根据后序序列确定树的根(尾结点),根据中序序

6、列确定左子树和右子树。7.标识符树将算术表达式用二叉树来表示称为标识符树,也称为二叉表示树。利用标识符树的后序遍历可以得到算术表达式的后缀表达式,是二叉树的一种重要应用。8.哈夫曼树及哈夫曼编码(1)路径长度从树中的一个结点到另一个结点之间的分支构成两个结点间的路径,路径上的分支数目,称作路径长度。(2)结点的带权路径长度从该结点到树根之间路径长度与该结点上权的乘积。(3)树的带权路径长度树中所有叶子结点的带权路径长度之和,称为树的带权路径长度。(4)哈夫曼树带权路径长度最小的二叉树,称为最优二叉树,也称为哈夫曼树。(5)哈夫曼编码哈夫

7、曼树从根结点到每个叶结点都有一条唯一的路径,规定哈夫曼树中的左分支代表0,右分支代表1,则从根结点到每个叶结点所经过的路径分支组成的0和1的序列即为该结点对应的哈夫曼编码。7.2典型习题分析【例1】度为2的树与二叉树有什么区别?答:一棵度为2的树与一棵二叉树的区别在于:对于度为1和度为2的树无须区分左右子树,但对于二叉树则必须区分左右子树,且左右子树不能任意交换。【例2】一般树和二叉树有什么区别?答:68一般树(非空)除了根结点之外,每个结点有且仅有一个前驱结点,但每个结点都可以有多个互不相交的子集(后继结点)。二叉树(非空)除了根结点

8、之外,每个结点有且仅有一个前驱结点,但每个结点至多只有两个后继结点,称为左子树和右子树,左、右子树的次序不能交换,且左右子树又分别都是二叉树。一般树和二叉树主要有以下区别:(1)二叉树结点的度最大为2,而一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。