第六章-树与二叉树-1.ppt

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

前面讨论的数据结构都属于线性结构,而实际中的许多问题若采用非线性结构来表示会显得更加明确和方便。 所谓非线性结构是指在该类结构中至少存在一个数据元素,它具有两个或两个以上的前驱或后继。 树形结构就是其中一类十分重要的非线性结构,它可以用来描述客观世界中广泛存在的、呈现层次结构的关系。 如:家庭、行政区(国家-省-县-区)、社会机构(公司-处-科室)、物种分类(门-纲-类-科-目-种)、书籍目录(书-章-节-小节)…… 第6章 树和二叉树 本章中主要介绍下列内容: 树的逻辑定义和存储结构 二叉树的逻辑定义、存储结构 二叉树的基本操作算法 树和二叉树的转换 哈夫曼树及其应用 6.1 树 6.1.1 树的定义和基本运算 1. 定义 树是一种常用的非线性结构。我们可以这样定义: 树是n(n≥0)个结点的有限集合。 若n=0,则称为空树;否则,在任意一棵非空树中: (1)有且仅有一个特定的结点被称为根, (2)当n1时,其余结点被分成m(m0)个互不相交的子集T1,T2,...,Tm,其中每个子集又是一棵树。 由此可以看出,树的定义是递归。如下图: 1.1、树在具体应用中的几种不同表现形式,它们各自适应于不同的场合。 (1)树形。 (2)文氏图。是以嵌套集合的形式表示的。所谓嵌套集合,是一些集合的集体,对于其中任何两个集合,或者不相交,或者一个包含另一个。 (3)凹入表:类似书的编目。 (4)嵌套括号:是以广义表 的形式表示的,根作为由子树 森林组成的表的名字写在表的 左边。 表示方法的多样性,正说明了 树结构在日常生活及计算机 程序设计中的重要性。一般 来说,分等级的分类方案都 可用层次结构来表示,也就 是说,都可导致一个树结构。 1.2、树的逻辑结构: 对于树,更常见的一种逻辑表示方法是给出树中元素的集合以及这个集合上的关系。如上例可描述为: T=(N,R),其中: 结点集合N={A,B,D,E,F,G,H,I,J,K,L,M} N上的关系R={A,B, A,C, A,D, B,E, B,F, C,G, D,H, D,I, D,J, F,K, F,L, H,M} 1.3、基本术语: 结点 数据元素的内容及其指向其子树根的分支统称为结点。 结点的度 结点的分支数。 终端结点(叶子) 度为0的结点。 非终端结点(分支结点) 度不为0的结点。 结点的层次 树中根结点的层次为1,根结点子树的根为第2层,以此类推。 树的度 树中所有结点度的最大值。 树的深度 树中所有结点层次的最大值。 有序树、无序树 如果树中每棵子树从左向右的排列拥有一定的顺序,不得互换,则称为有序树,否则称为无序树。 森林 是m(m≥0)棵互不相交的树的集合。 在树结构中,结点之间的关系又可以用家族关系描述,定义如下: 孩子、双亲 结点子树的根称为这个结点的孩子,而这个结点又被称为孩子的双亲。 子孙 以某结点为根的子树中的所有结点都被称为是该结点的子孙。 祖先 从根结点到该结点路径上的所有结点。 兄弟 同一个双亲的孩子之间互为兄弟。 堂兄弟 双亲在同一层的结点互为堂兄弟。 2. 树的基本运算 (1)从树的定义可知,每棵树是由一个根和若干棵子树形式,并且子树的棵数不是固定的,所以,其操作要比线性结构复杂得多。 (2)树的应用广泛,在不同的软件系统中树的基本操作集不尽相同。 常用操作: (1) 构造一个空树 InitTree (T) (2)将树T清为空树 ClearTree(T) (3)判断树是否为空 TreeEmpty(T) (4)获取给定结点的第i个孩子 Child(T,cur_e,i) (5)获取给定结点的双亲 Parent(T,cur_e) (6)遍历树Traverse(T):访问每个结点一次且仅一次。 对树遍历的主要目的是将非线性结构通过遍历过程线性化,即获得一个线性序列。树的遍历方法有两种,一种是按深度方向遍历(先根、中根、后根);另一种是按宽度方向遍历。 另外还有如下常用操作: 1.DestroyTree(T

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档