数据结构第7课树.pptx

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

Powered by yuanmayingdiyisucaidw2f树数据结构之四树树型结构是一类非常重要的非线性结构树型结构是以分支关系定义的层次结构。树在计算机领域中也有着广泛的应用例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程等等。7.1树的定义和基本术语1 树的定义 树(Tree)是n(n≧0)个结点的有限集合T,若n=0时称为空树,否则:⑴ 有且只有一个特殊的称为树的根(Root)结点;⑵ 若n1时,其余的结点被分为m(m0)个互不相交的子集T1, T2, T3…Tm,其中每个子集本身又是一棵树,称其为根的子树(Subtree)。 这是树的递归定义,即用树来定义树,而只有一个结点的树必定仅由根组成,如图6-1(a)所示。ACDBAJGFHIE(a) 只有根结点MNLK(b) 一般的树图6-1 树的示例形式树的定义和基本术语2 树的基本术语⑴ 结点(node):一个数据元素及其若干指向其子树的分支。⑵ 结点的度(degree) 、树的度:结点所拥有的子树的棵数称为结点的度。树中结点度的最大值称为树的度。如图6-1(b)中结点A的度是3 ,结点B的度是2 ,结点M的度是0,树的度是3 。树的定义和基本术语 如图6-1(b)中结点B 、C、D是结点A的子结点,而结点A是结点B 、C、D的父结点;类似地结点E 、F是结点B的子结点,结点B是结点E 、F的父结点。 同一双亲结点的所有子结点互称为兄弟结点。 如图6-1(b)中结点B 、C、D是兄弟结点;结点E 、F是兄弟结点。⑶ 叶子(left)结点、非叶子结点:度为0的结点称为叶子结点(或终端结点)。相对应地,度不为0的结点称为非叶子结点(分支结点)。 如图6-1(b)中结点H、I、J、K、L、M、N是叶子结点,而所有其它结点都是分支结点。⑷ 孩子结点、双亲结点、兄弟结点 树的定义和基本术语⑸ 层次 规定树中根结点的层次为1,其余结点的层次等于其双亲结点的层次加1。 若某结点在第i(i≧1)层,则其子结点在第i+1层。⑹ 结点的层次路径、祖先、子孙 从根结点开始,到达某结点p所经过的所有结点成为结点p的层次路径(有且只有一条)。 结点p的层次路径上的所有结点(p除外)称为p的祖先(ancester) 。 以某一结点为根的子树中的任意结点称为该结点的子孙结点(descent)。 树的定义和基本术语⑺ 树的深度(depth):树中结点的最大层次值,又称为树的高度,如图6-1(b)中树的高度为4。⑻ 有序树和无序树:对于一棵树,若其中每一个结点的子树(若有)具有一定的次序,则该树称为有序树,否则称为无序树。⑼ 森林(forest):是m(m≧0)棵互不相交的树的集合。显然,若将一棵树的根结点删除,剩余的子树就构成了森林。AGEDCBAKMHLNICDBFJJGFHIEMNLK(a)倒悬树(A(B(E(K,L),F),C(G(M,N)),D(H,I,J)(c) 嵌套集合形式(b)广义表形式图6-2 树的表示形式树的表示形式习 题 ⑴ 假设在树中, 结点x是结点y的双亲时,用(x,y)来表示树边。已知一棵树的树边集合为 { (e,i), (b,e), (b,d), (a,b), (g,j), (c,g), (c,f), (h,l), (c,h), (a,c) } ,用树型表示法表示该树,并回答下列问题: ① 哪个是根结点? 哪些是叶子结点? 哪个是g的双亲? 哪些是g的祖先? 哪些是g的孩子? 那些是e的子孙? 哪些是e的兄弟? 哪些是f的兄弟? ② b和n的层次各是多少? 树的深度是多少? 以结点c为根的子树的深度是多少?7.2 二叉树非常重要1 二叉树的定义 二叉树(Binary tree)是n(n≥0)个结点的有限集合。若n=0时称为空树,否则:⑴ 有且只有一个特殊的称为树的根(Root)结点;⑵ 若n1时,其余的结点被分成为二个互不相交的子集T1,T2,分别称之为左、右子树,并且左、右子树又都是二叉树。 由此可知,二叉树的定义是递归的。二叉树结构简单存储效率高,操作算法相对简单任何树都很容易转化成二叉树结构。(d)(c)(a)(c)右子树为空(d)左子树为空(a)空二叉树AA(b)(e)(b)单结点二叉树(e)左、右子树都不空二叉树的基本形态二叉树有5种基本形态:AA6.2.2 二叉树的性质性质1:在非空二叉树中,第i层上至多有2i-1个结点。性质2:深度为k的二叉树至多有2k-1个结点(k≧1) 。性质3:对任何一棵二叉树,若其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1。4567128101214911151336.2.3满二叉树和完全二叉树满二叉树的特点:◆ 基本特点是每一层

文档评论(0)

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

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档