计算机软件技术基础第4章1-3.ppt

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

第4章 树型结构 4.1 树的定义和基本术语 1.树的定义 树是n(n≥0)个结点组成的有穷集合T,在任意一棵非空树中,它满足下面两个条件: (1)有且仅有一个结点称之为根结点(root) (2)当n1时,其余结点可以分成m(m≥0)个互不相交的有限集T1 ,T2 ,…Tm 。其中每个集合又都是一棵树,称为根结点(root)的子树。 例 图1-4-1 树的例子 root D E B F J A H G I C M L K T1 T2 T3 4.1.2 树的基本术语(有些类似家族所用术语) 1.树的结点 树的结点包含着一个数据元素及若干指向其子树的分支。 2.子结点、父结点及兄弟结点,祖先和子孙 某结点的子树的根称为该结点的孩子结点(child),相应地,该结点称为孩子结点的双亲结点(parent)。 具有同一双亲的孩子结点之间互称兄弟。 结点的祖先是从根到该结点所经分支上的所有结点。以某结点为根的子树中的任一结点都称为该结点的子孙。 3.结点的层次及树的层数 结点的层次(level)从根开始定义,根为第一层,根的孩子为第二层,依次下推。树中结点的最大层次称为树的层数,亦可称为树的高度(或树的深度)。 此外,使用层次的概念来说:双亲在同一层次的结点互称为堂兄弟结点。 4.结点的度及树的度。 结点拥有的子树的个数称为该结点的度。 树的度是树中结点的度的最大值。 5.叶子、分支结点 度数为零的结点称为叶子(leaf)或终端结点。如上图中,结点K、L、F、G、M、I、J都是叶子结点。度大于零的结点称为分支结点或非终端结点,如结点B、C、D、E、H都是非终端结点。 6.无序树、有序树 对树的子树的左、右不加区别的树称作无序树。对子树之间次序加以区别的叫有序树。下面我们要介绍的二叉数就是有序树。 7.森林 森林是m(m≥0)棵互不相交的树的集合。 4.1.3 树形结构的逻辑特征 树形结构的逻辑特征可用树中结点之间的父子关系来描述: 1.树中任一结点都可以有零个或多个直接后继(即孩子)结点,但至多只能有一个直接前趋(即双亲)结点。 2.树中只有根结点无前趋,它是开始结点;叶结点无后继,它们是终端结点。 3.祖先与子孙的关系是对父子关系的延拓,它定义了树中结点之间的纵向次序。 4.有序树中,同一组兄弟结点从左到右有长幼之分。 对这一关系加以扩展,规定若k1和k2是兄弟,且k1在k2的左边,则kl的任一子孙都在k2的任一子孙的左边,这就是树中结点之间的横向次序。 2. 树的存储结构 树是一种非线性结构,不能简单地用一维数组或单链表来存储。设给定一棵度为m的树,常采用多重链表。树的链式结构有三种: 1)孩子表示法 同构型:每个结点指针域的个树均为树的度 异构型:每个结点指针域的个树为该结点的度。 同构型结点形式为: data child1 child2 …… childm 2)双亲表示法(补充) 结点形式为: data parent 3) 孩子双亲表示法(补充) 结点形式为: data parent child1 child2 …… childm 4.2 二叉树 1. 二叉树定义及其存储结构 定义:是由n (n≥0)个结点组成的有限集合T, 且集合T有下列性质: 1)如果T为空集(n=0),则T为空二叉树。 2)如果T为有限集(n0),则T为由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树组成。 二叉树不是树的特殊情况,主要区别在于二叉树结点的子树要区分左子树和右子树,即使只有一棵子树也要指明是左子树还是右子树。 二叉树可以有五种基本形态,如图1-4-2所示。 (d) (c) (a) (b) (e) (a)为空二叉树; (b)只有一个结点的二叉树; (c)只有左子树的二叉树; (d)只有右子树的二叉树; (e)左右完全的二叉树。 4.2.2 二叉树的性质 有关树的术语对二叉树同样适用,在二叉树中有以下5个性质。 性质1:在二叉树第i层上至多有2i-1个结点(i≥1)。 性质2:深度为k的二叉树至多有2k-1个结点(k≥1)。 性质3:对任何一棵二叉树T,如果其终端结点数为 n0,度为2的结点数为n2,则n0=n2+1。 性质4:具有n个结点的完全二叉树的深度为|log2n|+1 性质5:如果对一棵有n个结点的完全二叉树的结点按层次从每层自左至右编号(称为层次编号)对任一结点i(1≤i≤n)有: ⑴ 如果i=1,则结点i是二叉树的根,无双亲;如果i1,则其双亲结点是编号为i/2的结点。 ⑵ 如果2in,则结点i无左孩子(此

文档评论(0)

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

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

1亿VIP精品文档

相关文档