6章树与二叉树.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文档。上传文档
查看更多
6章树与二叉树

第6章 树与二叉树 6.1 树的概念和运算 树形结构是线性结构的拓广。 除了首元(唯一存在,在树形结构中称为“根”节点)没有前驱元素以外,树中其他所有元素(节点)都有且只有一个直接前驱元素(父节点);直接后继元素则没有限制:没有直接后继元素的节点(叶节点)可以有多个;存在直接后继元素的节点,其直接后继元素的个数也可以有多个。 6.1.1 树的定义与表示 树的定义: 树的逻辑结构可以这样描述: 树是包含N(N0)个节点的有穷集合D,且在D上定义了一个关系R,关系R满足以下条件: 树的递归定义: 树是由一个或多个节点组成的有限集T,它满足下面两个条件: (1)有一个特定的节点称之为根; (2)其余的节点分成m(m≥0)个互不相交的有限集T1,T2,…,Tm,其中每个集合本身又是一棵树,称T1,T2,…,Tm为根的子树。 树的表示: 体现树形结构中分支和层次的特性 。 6.1.2 树的基本术语 节点 节点的度 叶子或终端节点 非终端节点或分支节点 内部节点 树的度 6.1.3 树的ADT ADT Tree { 数据对象为D: D是具有相同特性的数据元素的集合 数据间的关系R: (1) 若D为空集,则称为空树; (2) 若D为非空集且仅含有一个数据元素,则R为空集,树只包含一个根节点; 6.2 二叉树 6.2.1 二叉树的定义与基本运算 二叉树是一个集合T;它可以是空集,也可以是一个由节点组成的有限集。同时,集合T具有下列的性质: (1) 如果T是空集,则称T是空的二叉树。 (2) 如果T是有限集,则T由一个特定的、称之为根的节点,以及称为该根的两个互不相交的左子树和右子树构成,同时这两棵子树亦是二叉树。 6.2.2 二叉树的性质 性质(1):在二叉树的第i层上至多有2i-1个节点(i≥1)。 完全二叉树的两个重要特性: 性质(4):具有n个节点的完全二叉树的深度为?log2n?+1。 6.2.3 二叉树的存储结构 顺序存储 以节点在向量中的相对位置来表示节点间的关系。 不足:一般的二叉树也必须按完全二叉树的形式来存储,势必会造成存储的浪费。 链式存储 6.2.4 二叉树操作的实现 遍历(周游)算法 深度优先遍历: 先序遍历:若二叉树为空,则空操作;否则 (1)访问根节点; (2)先序遍历左子树; (3)先序遍历右子树。 二叉树遍历的典型应用--表达式树 6.3 树和森林 6.3.1 树的存储结构 三种典型的表示法: 第一种是双亲表示法。 第二种是孩子表示法。 第三种是孩子兄弟表示法。 6.3.3 树的遍历 树的遍历 先根(次序)遍历:先访问树的根节点,然后按照从左至右的次序先根遍历根的每棵子树 后根(次序)遍历:先按照从左至右的次序后根遍历每棵子树,然后访问根节点。 6.4 树的典型应用 6.4.1 回溯法中的解空间树与0-1背包问题 0-1背包问题: 给定n种物品和一个背包。物品i的重量是wi,其价值为pi,背包的容量为C。问:应该如何选择装入背包的物品,使得装入背包中物品的总价值最大? 6.4.2 哈夫曼树与贪心算法 相关概念: 从树中一个节点到另一个节点之间的分支构成这两个节点之间的路径; 路径上的分支数目称作路径长度。 6.5 本章小结 基本要求: 熟练掌握二叉树的结构特性,了解相应的证明方法。 熟悉二叉树的各种存储结构的特点及适用范围。 熟练掌握各种遍历策略的递归算法,了解遍历过程中“栈”的作用和状态,而且能灵活运用遍历算法实现二叉树的其他操作。层次遍历是按另一种搜索策略进行的遍历。 6.3.2 树、森林与二叉树的转换 森林转换成二叉树 如果F={T1,T2,…,Tm}是森林,则按如下规则转化成一棵二叉树B=(root,lb,rb)。 ① 若F为空,即m=0,则B为空二叉树; ② 若F非空,即m?0,则B的根root即为森林中第一棵树的根root(T1);B的左子树lb是从T1中根节点的子树森林F1={T11,T12,…,T1k}转化而成的二叉树;其右子树rb是从森林F’={T2,T3,…,Tm}转化而成的二叉树。 二叉树转化成森林 如果B=(root,lb,rb)是一棵二叉树,则可按如下规则转化

文档评论(0)

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

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

1亿VIP精品文档

相关文档