第八章 数据结构应用(树——基础知识一).ppt

第八章 数据结构应用(树——基础知识一).ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * 1—30min 2—10min 3----30min 4----10min * * 一棵深度为k且有2 k-1个结点的二叉树称为满二叉树。 当深度为k,含有n个结点的二叉树,当且仅当其每个结点的编号与相应满二叉树结点顺序编号从1~n互相对应时,则称此二叉树为完全二叉树。 * * 1—30min 2—10min 3----30min 4----10min * * * * * * * * * * 在顺序存储结构中,利用编号表示元素的位置及元素之间孩子或双亲的关系,因此对于非完全二叉树,需要将空缺的位置用特定的符号填补,若空缺结点较多,势必造成空间利用率的下降 树 基础知识 树的概念与定义 定义: 树 (Tree) 是 n (n≥0) 个结点的有限集。若 n = 0,称 为空树;若 n 0,则它满足如下两个条件: (1) 有且仅有一个特定的称为根 (Root) 的结点; (2) 其余结点可分为 m (m≥0) 个互不相交的有限集 T1, T2, T3, …, Tm,其中每一个集合本身又是一棵树, 并称为根的子树 (SubTree)。 显然,树的定义是一个递归的定义。 生活中的递归实例 俄罗斯套娃,老和尚讲故事等 递归程序的定义---一个实例 求解整数n的阶乘函数。 调用函数本身 int Fact(int n) { if(n==0) return(1); else return(n*Fact(n-1)); } 树的逻辑结构:树中任一结点都可以有零个或多个直接后继结点 但至多只能有一个直接前趋结点。 T3 T2 T1 基本术语: 结点的度:结点拥有的子树数,即分支数 度 = 0 叶子 终端结点 度 ≠ 0 分支结点 非终端 结点 根结点以 外的分支 结点称为 内部结点 树的度:树内各结点的度的最大值。 双亲 孩子 兄弟 结点的祖先:从根到该结点所经分支上的所有结点。 结点的子孙:以某结点为根的子树中的任一结点。 第 1 层 第 2 层 第 3 层 第 4 层 堂兄弟 双亲在同一层的结点 树的深度:树中结点的最大层次。 有序树:树中结点的各子树从左至右有次序(最左边的为第一个孩子)。 无序树:树中结点的各子树无次序。 结点:数据元素+ 指向子树的分支 根结点:非空树中无前驱结点的结点 森林:是 m (m≥0) 棵互不相交的树的集合。 一棵树可以看成是一个特殊的森林。 把根结点删除树就变成了森林。 给森林中的各子树加上一个双亲结点,森林就变成了树。 E F G H I A B C D J K L M 树具有下面两个特点: (1)树的根结点没有前驱结点,除根结点之外的所有结点有且只有一个前驱结点。 (2)树中所有结点可以有零个或多个后继结点。 A B F D E G I C H K A 树 不是树 线性结构 树型结构 第一个数据元素 (无前驱) 根结点 (无前驱) 最后一个数据 元素(无后继) 多个叶子结点 (无后继) 其它数据元素 (一个前驱、 一个后继) 其它数据元素 (一个前驱、 多个后继) 二叉树的定义与基本术语 根结点 左子树 右子树 A B C D E F G H K B C D 二叉树的递归定义为:二叉树或者是一棵空树,或者是一棵由一个根结点和两棵互不相交的左子树和右子树所组成,左子树和右子树又同样都是一棵二叉树。 二叉树的五种基本形态: 空树 D 只含根结点 D L 无右子树 D R 无左子树 D R L 左右子树均有 (c) 非完全二叉树 D A 1 2 3 5 6 4 B C E F A C B E D F G H I J 1 2 4 3 5 7 6 8 9 10 (b) 完全二叉树 A C B E D F G H I J 1 2 4 3 5 7 6 8 9 10 L M 12 13 N O 14 15 K 11 (a) 满二叉树 完全二叉树特点 ? (1) 满二叉树是完全二叉树,完全二叉树不一定是满二叉树。 ? (2) 在满二叉树的最下一层上,从最右边开始连续删去若干结点后得到的二叉树仍然是一棵完全二叉树。 ? (3) 在完全二叉树中,若某个结点没有左孩子,则它一定没有右孩子,即该结点必是叶结点。 二叉树的重要性质 二叉树的重要性质 性质1 二叉树的第i(i≥1)层上最多有2i-1个结点。 对非空二叉树,第一层为根结点,

文档评论(0)

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

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

1亿VIP精品文档

相关文档