第7章 树和二叉树学习指导.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 树和二叉树 7.1 知识点分析 1.树的定义和术语 (1)树是n(n≥0)个有限数据元素的集合。在任意一棵非空树T中,有且仅有一个特定的称为树根(Root)的结点(根结点无前驱结点),当n1时,除根结点之外的其余结点被分成m(m0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤ i ≤m)本身又是一棵树,并且称为根的子树。 (2)结点树的结点包含一个数据及若干指向其子树的分支。 (3)结点的度一个结点所拥有的子树数称为该结点的度。 (4)叶子(终端结点)度为零的结点称为终端结点,也称为叶子。 (5)树的度树中各结点度的最大值称为该树的度。 (6)树的深度树中结点的最大层数称为树的深度或高度。 2.二叉树 (1)二叉树一棵非空的二叉树,每个结点至多只有两棵子树,分别称为左子树和右子树,左、右子树的次序不能任意交换,且左右子树又分别是一棵二叉树。 (2)满二叉树一棵深度为h,且有2 h‐1个结点的二叉树称为满二叉树。 (3)完全二叉树深度为h,有n个结点的二叉树,当且仅当每一个结点都与深度为h的满二叉树中编号从1至n的结点一一对应时,称此二叉树为完全二叉树。 3.关于二叉树的几个最常用的性质 性质1 一棵非空二叉树的第i层上最多有2 i–1个结点(i ≥1)。 性质2 深度为h的二叉树中,最多具有2 h -1个结点(h ≥1)。 性质3 对于一棵有n个结点的完全二叉树,若按满二叉树的同样方法对结点进行编号,则对于任意序号为i的结点,有: (1)若i1,则序号为i的结点的父结点的序号为i/2; (2)若2i≤n,则序号为i的结点的左孩子结点的序号为2i; (3)若2i+1≤n,则序号为i的结点的右孩子结点的序号为2i+1。 4.遍历二叉树 二叉树的遍历是指按某种顺序访问二叉树中的所有结点,使得每个结点都被访问,且仅被访问一次。通过一次遍历,使二叉树中结点的非线性序列转变为线性序列。 (1)二叉树前序遍历二叉树前序遍历先访问根结点,再前序遍历左子树,最后前序遍历右子树。 (2)二叉树中序遍历二叉树中序遍历先中序遍历左子树,再访问根结点,最后中序遍历右子树。 (3)二叉树后序遍历二叉树后序遍历先后序遍历左子树,再后序遍历右子树,最后访问根结点。 (4)层次遍历从根结点开始,按照自上而下,从左到右(同一层)的顺序逐层访问二叉树上的所有结点,这样的遍历称为按层次遍历。 5.线索二叉树 n 个结点的二叉树有n+1个空指针域,可以充分利用二叉链表存储结构中的那些空指针域,来保存结点在某种遍历序列中的直接前驱和直接后继的地址信息。指向直接前驱结点或指向直接后继结点的指针称为线索,带有线索的二叉树称为线索二叉树。对二叉树以某种次序遍历使其变为线索二叉树的过程称为线索化。 由于二叉树的遍历方法不同,因此线索二叉树的方法也有多种。其中以中序线索化用得最多。 线索二叉树的画法,先写出二叉树的某种遍历的序列,若左孩子为空,则此线索指针将指向前一个遍历次序的结点,右孩子为空,则此线索指针将指向下一个遍历次序的结点,左右不为空时,则不须画。 6.恢复二叉树 (1)对于已知二叉树的前序和中序序列,可以根据前序序列确定树的根(首结点),根据中序序列确定左子树和右子树。 (2)对于已知二叉树的后序和中序序列,可以根据后序序列确定树的根(尾结点),根据中序序列确定左子树和右子树。 7.标识符树 将算术表达式用二叉树来表示称为标识符树,也称为二叉表示树利用标识符树的后序遍历可以得到算术表达式的后缀表达式,是二叉树的一种重要应用。 8.哈夫曼树及哈夫曼编码 (1)路径长度从树中的一个结点到另一个结点之间的分支构成两个结点间的路径,路径上的分支数目,称作路径长度。 (2)结点的带权路径长度从该结点到树根之间路径长度与该结点上权的乘积。 (3)树的带权路径长度树中所有叶子结点的带权路径长度之和,称为树的带权路径长度。 (4)哈夫曼树带权路径长度最小的二叉树,称为最优二叉树,也称为哈夫曼树。 (5)哈夫曼编码哈夫曼树从根结点到每个叶结点都有一条唯一的路径,规定哈夫曼树中的左分支代表0,右分支代表1,则从根结点到每个叶结点所经过的路径分支组成的0和1的序列即为该结点对应的哈夫曼编码。 7.2 典型习题分析 【例1】 度为2的树与二叉树有什么区别? 答: 一棵度为2的树与一棵二叉树的区别在于:对于度为1和度为2的树无须区分左右子树,但对于二叉树则必须区分左右子树,且左右子树不能任意交换。 【例2】一般树和二叉树有什么区别? 答: 一般树(非空)除了根结点之外,每个结点有且仅有一个前驱结点,但每个结点都可以有多个互不相交的子集(后继结点)。 二叉树(非空)除了根结点之外,每个结点有且仅有一个前驱结点,但每个结点至多只有两个后继结点,称为左子树和

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档