数据结构-树与二叉树.ppt

  1. 1、本文档共91页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 树和二叉树 6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树 6.4 线索二叉树 6.5 树和森林 6.6 哈夫曼树 教学目的、要求 1.领会树和二叉树的类型定义,理解树和二叉树的结构差别。 2.熟记二叉树的主要特性,并掌握它们的证明方法。 3.熟练掌握二叉树的各种遍历算法,并能灵活运用遍历算法实现二叉树的其它操作。 4.理解二叉树的线索化过程以及在中序线索化树上找给定结点的前驱和后继的方法。 5.熟练掌握二叉树和树的各种存储结构及其建立的算法。 6.学会编写实现树的各种操作的算法。 7.了解最优树的特性,掌握建立最优树和赫夫曼编码的方法。 6.1 树的定义和基本术语 6.1.1树的定义 树是由n(n≥0)个结点组成的有限集合。若n=0,称为空树;若n0,则: ①有一个特定的称为根(root)的结点。它只有直接后继,但没有直接前驱; ②除根结点以外的其它结点可以划分为m(m≥0)个互不相交的有限集合T0,T1,…,Tm-1,每个集合Ti(i=0,1,…,m-1)又是一棵树,称为根的子树,每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。 由此可知,树的定义是一个递归的定义,即树的定义中又用到了树的概念。 树的结构参见下图: 在图6.1(c)中,树的根结点为A,该树还可以分为三个互不相交子集T0,T1,T2,其中T0={B,E,F,J,K,L},T1={C,G},T2={D,H,I,M},其中的T0,T1,T2都是树,称为图6.1(C)中树的子树,而T0,T1,T2又可以分解成若干棵不相交子树。如T0可以分解成T00,T01两个不相交子集,T00={E,J,K,L},T01={F},而T00又可以分为三个不相交子集T000,T001,T002,其中,T000={J},T001={K},T002={L}。 树的抽象数据类型定义见教材P118-119 6.1.2 基本术语 1. 结点 指树中的一个数据元素,一般用一个字母表示。 2. 度 一个结点包含子树的数目,称为该结点的度。 3. 树叶(叶子) 度为0的结点,称为叶子结点或树叶,也叫终端结点。 4. 孩子结点 若结点X有子树,则子树的根结点为X的孩子结点,也称为孩子,儿子,子女等。如图6.1(c)中A的孩子为B,C,D。 5. 双亲结点 若结点X有子女Y,则X为Y的双亲结点。 6. 祖先结点 从根结点到该结点所经过分枝上的所有结点为该结点的祖先,如图6-1(c)中M的祖先有A,D ,H 。 7. 子孙结点 某一结点的子女及子女的子女都为该结点子孙。 8. 兄弟结点 具有同一个双亲的结点,称为兄弟结点。 9. 分枝结点 除叶子结点外的所有结点,为分枝结点,也叫非终端结点。 10. 层数 根结点的层数为1,其它结点的层数为从根结点到该结点所经过的分支数目再加1。 11. 树的深度(高度) 树中结点所处的最大层数称为树的高度,如空树的高度为0,只有一个根结点的树高度为1。 12. 树的度 树中结点度的最大值称为树的度。 13. 有序树 若一棵树中所有子树从左到右的排序是有顺序的,不能颠倒次序。称该树为有序树。 14. 无序树 若一棵树中所有子树的次序无关紧要,则称为无序树。 15.森林 若干棵互不相交的树组成的集合为森林。一棵树可以看成是一个特殊的森林。 6.1.3 树的表示 1. 树形结构表示法 2. 凹入法表示法 图6.1(c)的树的凹入法表示 3. 嵌套集合表示法 图6.1(c)的嵌套集合表示 4. 广义表表示法 对图6-1(c)的树结构,广义表表示法可表示为: (A(B(E(J,K,L),F),C(G),D(H(M),I))) 6.1.4 树的性质 性质1 树中的结点数等于所有结点的度加1。 证明:根据树的定义,在一棵树中,除根结点以外,每个结点有且仅有一个直接前驱,也就是说,每个结点与指向它的一个分支一一对应,所以,除根结点以外的结点数等于所有结点的分支数(即度数),而根结点无直接前驱,因此,树中的结点数等于所有结点的度数加1。 性质2 度为k的树中第i层上最多有ki-1个结点(i≥1)。 下面用数学归纳法证明: 对于i=1,显然成立,假设对于i-1层,上述条件成立,即第i-1层最多有ki-2个结点, 对于第i层,结点数最多为第i-1层结点数的k倍(因为度为k),故第i层的结点数为ki-2*k= ki-1。 性质3 深度为h的 k叉树最多有 个结点。 证明: 由性质2可知,若每一层的结点数最多,则整个k叉树结点数最多,共有 当一棵K叉树上的结点数达到 时,称为满K叉树。 性质4 具有n个结点的k叉树的最小深度为

文档评论(0)

lyxbb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档