网站大量收购独家精品文档,联系QQ:2885784924

第七章树状结构.pptVIP

  1. 1、本文档共53页,可阅读全部内容。
  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文档。上传文档
查看更多
第七章 基础树状结构 7.1 何谓树状结构 树状结构在计算机信息处理中应用相当广泛,如文件系统、目录组织、菜单管理等。 树状结构中常见的是树和二叉树,本章介绍这两种结构的概念、存储结构和相关算法,并研究树、二叉树之间的相互转换,最后给出树形结构在现实生活中的一些具体应用。 7.1 何谓树状结构 树是n(n≥0)个有限元素(习惯称作结点)的集合T。当n=0时,称这棵树为空树;当n0时,集合T满足如下条件: (1)有且只有一个称为根(Root)的结点,它没有直接前驱,但有零个或多个直接后继; (2)其余的n-1个结点可以划分为m个互不相交的有限集T1,T2,T3,…,Tm,其中每个集合Ti 又是一棵树,称为根(Root)的子树。每棵子树的根结点有且只有一个直接前驱,但有零个或多个直接后继。 可以看出,树的定义用到了递归的方法,即用树来定义树,这种方法在后面树(特别是二叉树)的遍历、建立等算法中经常用到。 7.1.1 何谓树 从图中树T可知,节点A为树T的根节点(root),B,C,D….,M则为节点A的子节点,若包含其下拥有的所有子节点,则为Tree—T的子树(subtree)。例如B是A的子节点,P、Q皆是B的子节点,而B、P、Q为树T的子树。 7.1.2 树的相关名称及意义 (1) 根节点 (root node): 一棵树中没有前驱节点的节点,称为根节点。 (6) 分支度(度) (degree): 节点的分支度为每个节点所拥有的子节点个数。 而一棵树中最大的分支度值,即为该树的分支度。 (2) 叶节点 (leaf node)或终端节点 (terminal mode): 一棵树中没有子节点的节点,称为叶节点。 叶节点的分支度为0。 (3) 非终端节点 (nonterminal mode) 除了叶节点以外的其它节点,称为非终端节点。 (4) 父节点 (parent)和子节点 (child): 若节点x有一个以节点y为树根(root)的子树,则x为y的父节点,而y为x的子节点。 节点的前驱节点称为该节点的父节点。 树中一个节点的子树的根节点称为该节点的子节点。 7.1.2 树的相关名称及意义 (5) 兄弟 (sibling): 同一个父节点之节点,称为兄弟。 如图,B、C、D的父节点均为A,故B、C、D互为兄弟。 (9) 祖先 (ancestor): 某节点x的祖先是从根到该节点所经分支上的所有节点。 (7) 节点的阶层(层次) (level): 阶层为节点之特性值,将根节点之阶层设为1,其子节点为2,依此类推。 (8) 高度 (height)或深度 (depth): 一棵树中的最大阶层值,称为树的高度或深度。 (10) 树林 (forest): n≧0个树的集合称为树林。若将一树的根节点移去,所剩这恰是一树林。 7.2 二叉树 7.2.1 何谓二叉树 二叉树(Binary tree)是树的一种,二叉树中的节点至多只能有两个子节点。 二叉树的定义如下: (1) 由有限个节点所构成之集合,此集合可以为空的。 (2) 二叉树的根节点下可分成两个子树,称为左子树和右子树,左子树和右子树亦称二叉树。 7.2.1 何谓二叉树 由二叉树的定义可知,每个节点只能有0、1或2个子树,且每个子树有左右之分。把位于左边的叫做左子树,右边的叫做右子树。即使只有一棵子树时,也要区分它是左子树还是右子树。 7.2.3 二叉树的相关特色 二叉树的性质: (1) 阶层(level)为i的二叉树,最多有2i-1个节点。 (2) 高度(height)为h的二叉树,最多有2h-1个节点。 (3) 对任一个非空的二叉树而言,若分支度为i的节点各有n i个,则n 0 = n 2 + 1 (1) 满二叉树 (full binary tree) 一树中所有叶节点均在同一阶层,而其它非终端节点(nonterminal node)之分支度均为2,则此树为一满二叉树。若该树的高度为h,则此二叉树的节点为2h-1。 (2) 完全二叉树 (complete binary tree) 一棵树扣除掉最大阶层那层后为一满二叉树,且阶层最大那层的节点均向左靠齐,则该二叉树称为完全二叉树。 在一棵深度为k,结点为n的二叉树中,对树中结点按从上到下,从左到右的顺序编号,完全二叉树中编号为1~n的结点分别与满二叉树中编号为1~n的结点位置一一对应。 7.3 二叉树表示法 二叉树节点的表示法,常用的有下列3种方法: (1) 二叉树数组表示法 (2) 二叉树结构数组表示法 (3) 二叉树链表表示法 其中“数组表示法”和“结构数组表示法”是属于静态内存空间配置,而“链表表示法”是利用列表结构的方式,属于动态内存空间配置。 7.3.1 二叉树数组表示法

文档评论(0)

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

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

1亿VIP精品文档

相关文档