数据结构_树和二叉树.pptx

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构_树和二叉树

CH6 树和二叉树6.1 树的定义和基本术语6.2 二叉树6.3 遍历二叉树和线索二叉树6.4 树和森林6.5 树的遍历算法的应用举例6.6 赫夫曼树及其应用2002-10-11教学内容树和二叉树是一类具有层次或嵌套关系的非线性结构,被广泛地应用于计算机领域,尤其是二叉树最重要、最常用。本章着重介绍了:二叉树的概念、性质和存储表示;二叉树的三种遍历操作线索二叉树的有关概念和运算。森林和二叉树之间的转换;树的三种存储表示方法;树和森林的遍历方法。最后讨论了最优二叉树(哈夫曼树)的概念及其应用教学目标熟悉树和二叉树的递归定义,有关的术语及基本概念;熟练掌握二叉树的性质,了解相应的证明方法;熟练掌握二叉树的两种存储方法,特点及适用范围;不仅要熟练掌握各种次序的遍历算法,而且还要能灵活运用遍历算法实现二叉树的其它各种运算;了解二叉树线索化及其实质熟练掌握树、森林与二叉树之间的转换方法;了解最优二叉树的特性,掌握建立最优二叉树和哈夫曼编码的方法。 引言:树型结构是一类重要的非线性结构。树型结构是结点之间有分支,并且具有层次关系的结构,它非常类似于自然界中的树。树结构在客观世界国是大量存在的,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用:在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。……6.1 树的定义和基本术语1.树的定义:树是由n(n≥0)个结点组成的有限集合。若n=0,称为空树;若n>0,则:有一个特定的称为根(root)的结点。它只有直接后继,但没有直接前驱;除根结点以外的其它结点可以划分为m(m≥0)个互不相交的有限集合T1,T2,…,Tm,每个集合Ti(i = 1,2,…,m)又是一棵树,称为根的子树,每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。rootT3T2T16.1 树的定义和基本术语2.树的基本术语树的结点结点的度树的度:结点的层次树的高度(深度)6.1 树的定义和基本术语3.树的抽象数据类型定义 ADT Tree{ 数据对象D:由n个具有相同特性的元素构成的集合 数据关系R: 若|D|=0,则称为空树; 若|D|=1,则R为空关系; 否则 R={H},H是如下的二元关系:存在唯一的root∈D,在关系H下无前驱;若D-{root}非空, 则存在D-{root}的一个划分:{D1,D2,……Dm}(m >0),对任意的i(1≤i≤m),存在唯一的xi∈D,有 root,xi ∈H对应于D-{root}的划分,H-{root,x1, root,x2,……, root,xm}有唯一的划分H1,H2,……Hk( k>0),{Di ,Hi}是一棵符合本定义的树,称为root的子树。基本操作P: InitTree(T) ; CreateTree(T,definiton); Root(T); Parent(T,cue_e); LeftChild(T,cur_e); RightSibling(T,cur_e); TraverseTree(T,visit());}ADT Tree6.1 树的定义和基本术语4.树的表示方法:(1)树形结构表示法(直观表示法) (2) 凹入表示法树的凹入表示法主要用于树的屏幕和打印显示。(3) 嵌套集合表示法4.广义表表示法(形式化表示方法):(A(B(E(J,K,L),F),C(G),D(H(M),I)))主要用于树的理论描述小结:树的表示方法的多样性,正说明了树结构在日常生活中及计算机程序设计中的重要性。一般来说,分等级的分类方案都可用层次结构来表示,也就是说,都可产生一个树结构。6.2 二叉树6.2.1 二叉树的定义6.2.2 二叉树的性质6.2.3 二叉树的存储结构2002-10-116.2.1 二叉树的定义1.定义:二叉树是由n(n≥0)个结点的有限集合构成,此集合或者为空集,或者由一个根结点及两棵互不相交的左右子树组成,并且左右子树都是二叉树。2.二叉树的五种基本形态:注意:二叉树的定义也是一个递归定义;二叉树与树是两个不同的概念,它不是树的特殊情况;这是因为二叉树的子树有左右之分,而树的子树不必区分次序。二叉树与度为2的有序树也是不同的概念;对于二叉树的子树而言,要么是根的左子树,要么是根的右子树,即使只有一棵子树也要区分是左是右;度为2的有序树中,当一个结点有两棵子树时有左右之分,而只有一棵子树时就无左右之分。问题:1.只有两个结点的二叉树有几种不同的形态?2.只有3个结点的二叉树有几种不同形态?分别画出来。 有0个, 1个, 2个, 3个结点的不同二叉树如下b0 =1b1 =1b2 =2b3 =5 b4 =143.二叉树的抽象数据类型定义ADT

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档