树和叉树(数据结构).docVIP

  1. 1、本文档共70页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
树和叉树(数据结构)

第六章 树和二叉树 6.1树(tree)的概念 在日常生活中,可以见到很多情形可以归结为树结构。如:家族谱系、行政管理机构、DOS和Windows磁盘文件管理系统等。 我们讨论的树和自然界的树在生长方向上正好相反,它是倒长的树,即根朝上,枝干和叶子朝下。 例1:某家族谱系的一部分 例2:国家行政管理机构的一部分 例3:DOS和Windows磁盘文件的一部分 C:\ TC20 VC6.0 数据结构课件 数据结构讲稿 第一章 第二章 …… MyTc程序 Tc1 Tc2 …… MyVc程序 Vc1 Vc2 …… 树是一种层次结构,属于非线性结构。我们学过的线性表可以灵活组织数据,但它受到线性结构的限制,表达层次结构不太方便。 6.1.1树的定义 ·树T是n(n≥0)个结点的有限集合。它满足: (1)仅有一个特定的结点,称为根(root)结点; (2)其余结点分为m(m≥0)个互不相交的非空有限集合 ,,……,,其中每个集合自身又是一棵树,称为根的子树(subtree)。 ·为了表述方便,把没有结点的树称为空树。 ·树的定义具有递归性:即一棵树是由根及若干棵子树构成的,而子树又是由根及若干棵子树构成的,……。 表达树的方法通常有4种:树形、凹入、集合和广义表 (1) 树形表示法 (2) 凹入表示法 (3) 集合嵌套表示法 (4) 广义表表示法 T(A(B,C(E,F),D(G,H))) 6.1.3 树的基本术语 为了对树的形态表述清楚和形象,通常引用树和人的特征及术语来描述。 (1)结点和树的度(degree) 结点所拥有的子树的个数称为该结点的度,而树中各结点的度的最大值称为该树的度。 如: ·结点B、E、F、G和H的度数是0 ·结点C和D的度数都是2 ·结点A的度数是3;显然3也是树的度数 (2)叶子(leaf)结点和分支结点 度为0的结点称为叶子结点(终端结点);度不为0的结点称为分支结点 (非终端结点)。 一棵树除了叶子结点就是分支节点。 如: ·结点 B、E、F、G和H是叶子结点 ·结点A、C和D是分支结点 (3)孩子(child)结点、双亲(parents又称父亲)结点、兄弟(brother)及堂兄弟结点 树中一个结点的子树的根称为该结点的孩子,该结点称为其孩子结点的双亲结点。同一个双亲的孩子结点互称为兄弟。双亲在同一层的结点互为堂兄弟。 如: ·结点B、C和D均为结点A的孩子结点;A是B、C和D的双亲结点 ·结点E和F为孩子C的结点;C是E和F的双亲结点 ·结点G和H为孩子D的结点;D是G和H的双亲结点 ·显然结点A没有双亲结点(因为A不是子树的根) ·结点B、C和D互为兄弟;结点E和F互为兄弟;结点G和H互为兄弟。但结点E、F为一方和G、H为另一方互为堂兄弟 (4)祖先(ancestor)和子孙(descendant) 结点的祖先是从根到该所经分支上的所有结点。反之,以某结点为根的子树中的任一结点称为该结点的子孙。显然祖先和子孙关系是父子关系的延伸。 如: ·结点A是结点B、C、D、E、F、G和H的祖先;反之,结点B、C、D、E、F、G和H是的结点A的子孙 (5)结点的层数(level)和树的深度(depth,或称高度height) 结点的层次从根结点开始算起,根结点的层数为1,其余结点的层数等于其双亲结点的层数加1。比如,如果某个结点的层数为h,则其子树就在第h+1层。 树中各个结点层数的最大值称为树的深度(高度)。 如: ·结点A的层数为1;结点B、C和D的层数为2;结点E、F、G和H的层数为3 ·树的深度(高度)为3。 (6)有序树(orderedtree)和无序树(unorderedtree) 若一棵树中结点的各子树从左到右是有次序的,即若交换了某结点各子树的相对位置就构成不同的树,则称这棵树为有序树,否则称为无序树。 (7)路径(path)从树中的一个结点到另一个结点的路途 如:A-C-E,A-D-H等 但B-A-D-G不是路径,因为树不能这样遍历。 (8)森林(forest):m(m≥0)棵互不相交的树的集合 树的逻辑关系: (1)树的任一结点都可以有0个或多个直接的后继结点(孩子,这也是非线性的原因),但至多只能有一个直接的前驱结点(双亲结点); (2)只有根结点没有前驱,叶子结点(终端结点)没有后继; (3)祖先与子孙关系是父子关系的延

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档