07树和二叉树.ppt

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

第7章 树和二叉树 7.1 树 7.2 二叉树 7.3 以结点类为基础的二叉树设计 7.4 二叉树类 7.5 二叉树的分步遍历 7.6 线索二叉树 7.7 霍夫曼树 7.8 树的遍历 本章主要知识点: 树的定义、表示方法和存储结构 二叉树的定义、性质和存储结构,满二叉树和完全二叉树的概念 二叉树的前序、中序、后序和层序遍历算法 二叉树中序和层序游标类的设计方法 线索二叉树的基本概念 哈夫曼树和哈夫曼编码,哈夫曼编码的软件设计方法 树与二叉树的转换,树的遍历 7.1 树 7.1.1 树的定义 树是由n(n≥0)个结点构成的满足以下条件的结点集合: (1)当n0时,有一个特殊的结点称为根结点,根结点没有前驱结点; (2)当n1时,除根结点外的其他结点被分成m(m0)个互不相交的集合T1, T2,…, Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵结构和树结构类同的子树。 树的基本术语 结点——表示树中的元素,包括数据项及若干指向其子树的分支 结点的度——结点拥有的子树数 叶子——度为0的结点,也叫终端结点 分支结点——度不为0的结点,也叫非终端结点 内部结点——除根结点之外,分支结点也称为内部结点 树的基本术语 树的度——一棵树中最大的结点度数 孩子——结点子树的根称为该结点的孩子 双亲——孩子结点的上层结点叫该结点的双亲 兄弟——同一双亲的孩子之间互成为兄弟 祖先——结点的祖先是从根到该结点所经分支上的所有结点 子孙——以某结点为根的子树中的任一结点都成为该结点的子孙 树的基本术语 结点的层次——从根结点算起,根为第一层,它的孩子为第二层…… 堂兄弟——其双亲在同一层的结点互称为堂兄弟。深度——树中结点的最大层次数 有序树—— 如果将树中结点的各子树看成从左至右是有次序的(即不能互换),则称该树为有序树,否则称为无序树。在有序树中最左边的子树的根称为第一个孩子,最右边的称为最后一个孩子。 森林——m(m?0)棵互不相交的树的集合 7.1.2 树的表示方法 1 直观表示法 2 形式化表示法 树的形式化表示法主要用于树的理论描述。树的形式化表示法定义树T为T=(D,R)其中D为树T中结点的集合,R为树T中结点之间关系的集合。当树T为空树时D=¢;当树T不为空树时有D={Root}∪DF,其中Root为树T的根结点,DF为树T的根Root的子树集合,DF可由下式表示: DF = D1∪D2∪…∪Dm (1≤i, j≤m, Di∩Dj=¢) 3 凹入表示法 直观表示法B图的凹入表示: 7.13 树的抽象数据类型 数据集合 :树的结点集合,每个结点由数据元素和构造数据元素之间关系的指针组成。 操作集合: (1)双亲结点parent() (2)左孩子结点leftChild() (3)右兄弟结点rightSibling() (4)遍历树traverse(vs) 7.1.4 树的存储结构 1 双亲表示法 双亲表示法就是用指针表示出每个结点的双亲结点。 对于使用仿真指针的双亲表示法来说,每个结点应有两个域,一个是数据元素域,另一个是指示其双亲结点在数组中下标序号的仿真指针域。 树及其使用仿真指针的双亲表示法 2 孩子表示法 孩子表示法就是用指针表示出每个结点的孩子结点。 常规指针的孩子表示法 3 双亲孩子表示法 双亲孩子表示法就是用指针既表示出每个结点的双亲结点,也表示出每个结点的孩子结点。 4 孩子兄弟表示法 孩子兄弟表示法就是用指针既表示出每个结点的孩子结点,也表示出每个结点的兄弟结点。 二叉树的定义及特点 定义: 二叉树是结点的有限集合,这个集合或者是空的,或者由一个根结点或两棵互不相交的称为左子树的和右子树的二叉树组成。 特点: 1)每个结点至多有二棵子树(即不存在度大于2的结点) 2)二叉树的子树有左、右之分,且其次序不能任意颠倒 二叉树的五种基本形态 满二叉树 定义: 一颗深度为k的满二叉树,是由2k -1个结点的深度为K的二叉树。2k -1个结点是二叉树所具有的最大结点个数。 为从第一层的结点(即根)便于访问满二叉树的结点,对满二叉树开始,自上而下,从左到右,按顺序给结点编号,便得到满二叉树的一个顺序表。 完全二叉树 定义:一颗具有n个结点、深度为K的二叉树,当且仅当其所有结点对应于深度为k的满二叉树中编号由1到n的那些结点时,该二叉树便是完全二叉树。 7.2.2 二叉树抽象数据类型 数据集合:二叉树的结点集合,每个结点由数据元素和构造数据元素之间关系的指针组成。 操作集合: (1)双亲结点parent(): (

文档评论(0)

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

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

1亿VIP精品文档

相关文档