数据结构(第六章-树和二叉树).pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数 据 结 构第 6 章 树和二叉树 引言线性结构:线性表(顺序表、链表)栈和队列数组、广义表非线性结构:树图主要内容6.1树及其抽象数据类型6.2二叉树6.3线索二叉树6.4 Huffman树 6.5树的表示和实现6.1 树及其抽象数据类型树结构树结构是一类重要的非线性结构。树结构是结点之间有分支,并且具有层次关系的结构,它非常类似于自然界中的树。树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程,等等。6.1 树及其抽象数据类型树结构举例6.1 树及其抽象数据类型树结构由上可知,在树结构中,除根结点以外的结点只有一个直接前驱结点,可以有零个至多个直接后继结点;根结点没有前驱结点。6.1 树及其抽象数据类型树定义树(Tree)是由n(n=0)个结点组成的有限集合。n=0的树称为空树,n0的树由以下两个条件约定构成:1. 有且仅有一个特殊的称为根(Root)的结点,它只有后继结点,没有前驱结点;2. 其余的结点可分为m(nm=0)个互不相交的子集T0、T1、T2…、Tm-1,其中每个子集又是一棵树,并称其为子树(Subtree)。6.1 树及其抽象数据类型树定义A比如上图,左边为只有一个结点的树,A为根。右边是一个有8个结点的树,A为根,其余可以分为三个不相交的子集,也就是可以分为三个子树。6.1 树及其抽象数据类型树定义6.1 树及其抽象数据类型基本术语结点的双亲结点或父母结点(parent):结点上面的相邻结点,或指结点的前驱结点结点n的孩子结点(child):任何一个以n作为双亲结点的结点,或指结点n的后继结点树的根(root):有且仅有的一个特定的结点,它没有双亲结点6.1 树及其抽象数据类型基本术语结点n的祖先结点(ancestor):包括n的双亲结点, n的双亲结点的双亲结点,等等;即指从根结点到其父母结点所经过的所有结点根是树中所有结点的公共祖先结点结点n的子孙(后代)结点(descendant):任何一个以n作为祖先结点的结点;即指结点的所有孩子结点,以及孩子的孩子等兄弟结点(sibling):如果结点m和n共有一个双亲结点,则称m和n为兄弟结点6.1 树及其抽象数据类型基本术语叶子结点(终端结点)(leaf):没有孩子结点的结点分支结点(非终端结点):叶子结点之外的结点称为分支结点或者非终端结点子树(subtree):在树T中,n的子孙结点组成了以n作为根的T的子树6.1 树及其抽象数据类型基本术语结点n的度(degree of node):n的孩子结点的数量树的度(degree of a tree):树中所有结点的最大度数6.1 树及其抽象数据类型基本术语结点n的层次(level):结点n所处的树中的层次位置。可以假设根的层次是0或1,本书中所有都假设根的层次为1,其他结点的层次是其父母结点的层次加1树的高度(heigh )或深度(depth) :树中结点的最大层次数6.1 树及其抽象数据类型基本术语边(edge):设树中X结点是Y结点的父母结点,有序对(X,Y)称为连接这两个结点的分支,也称为边路径(path):从一个结点n到另一个结点的边序列,如设(X0,X1,…,Xk-1)是由树中结点组成的一个序列,且(Xi,Xi+1)都是树中的边,则该序列称为X0到Xk-1的一条路径路径长度(length):路径中涉及到边的数量6.1 树及其抽象数据类型基本术语若把树中每个结点的各子树看成从左到右有次序的(即不能互换),则称该树为有序树(Ordered Tree);否则称为无序树(Unordered Tree)森林(forest):m棵互不相交的树的集合(如:{T0,T1,T2…Tm-1}),但可能为空6.1 树及其抽象数据类型树的表示1.树形结构表示法(图示法) 具体参见下图 6.1 树及其抽象数据类型树的表示2. 横向凹入表示法具体参见下图 6.1 树及其抽象数据类型树的表示3. 嵌套集合表示法(文氏图表示法)具体参见下图 6.1 树及其抽象数据类型树的表示4. 广义表表示法 对图6-1(c)的树结构,广义表表示法可表示为:(A(B(E(J,K,L),F),C(G),D(H(M),I)))6.1 树及其抽象数据类型树的抽象数据类型ADT TreeT //树抽象数据类型{ boolean isEmpty() //判空 int level(T key) //层次 int size() //结点数 int height() /

文档评论(0)

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

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

1亿VIP精品文档

相关文档