- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
.计算机软件技术基础
计算机软件技术基础 数据结构与算法(4) * 数据结构研究的内容 2.4 树和二叉树 特点:非线性结构,一个直接前驱,但可能有多个直接后继。 2.4.1 树的基本概念 2.4.2 二叉树 2.4.3 遍历二叉树 (一对多或1:n) 2.4.1 树的基本概念 注1:过去许多书籍中都定义树为n≥1,曾经有“空树不是树”的说法,但现在树的定义已修改。 注2:树的定义具有递归性,即“树中还有树”。 由一个或多个(n≥0)结点组成的有限集合T,有且仅有一个结点称为根(root),当n1时,其余的结点分为m(m≥0)个互不相交的有限集合T1,T2,…,Tm。每个集合本身又是棵树,被称作这个根的子树 。 若干术语 ——即上层的那个结点(直接前驱) ——即下层结点的子树的根(直接后继) ——同一双亲下的同层结点(孩子之间互称兄弟) ——即双亲位于同一层的结点(但并非同一双亲) ——即从根到该结点所经分支的所有结点 ——即该结点下层子树中的任一结点 A B C G E I D H F J F L K 根 叶子 森林 有序树 无序树 ——即根结点(没有前驱) ——即终端结点(没有后继) ——指m棵不相交的树的集合(例如删除A后的子树个数) 双亲 孩子 兄弟 堂兄弟 祖先 子孙 ——结点各子树从左至右有序,不能互换(左为第一) ——结点各子树可互换位置。 ——即树的数据元素 ——结点挂接的子树数 结点 结点的度 结点的层次 终端结点 分支结点 树的度 树的深度 (或高度) ——从根到该结点的层数(根结点算第一层) ——即度为0的结点,即叶子 ——即度不为0的结点(也称为内部结点) ——所有结点度中的最大值(Max{各结点的度}) ——指所有结点中最大的层数(Max{各结点的层次}) 问:右上图中的结点数= ;树的度= ;树的深度= 13 3 4 (有几个直接后继就是几度,亦称“次数”) A B C G E I D H F J F L K 树的逻辑结构 一对多(1:n),有多个直接后继(如家谱树、目录树等等),但只有一个根结点,且子树之间互不相交。 特点: 一般树(即多叉树)的物理结构比较复杂,而且运算也很难实现。 解决方法: 将多叉树转化为等价的二叉树。 树的物理结构 为何要重点研究每结点最多只有两个 “叉” 的树? 二叉树的结构最简单,规律性最强; 可以证明,所有树都能转为唯一对应的二叉树,不失一般性。 1. 二叉树的定义 2. 二叉树的性质 3. 二叉树的存储结构 2.4.2 二叉树 1. 二叉树的定义 定义:是n(n≥0)个结点的有限集合,或者是(n=0),或者是由一个根结点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成 。 逻辑结构:一对二(1:2) 基本特征: ① 每个结点最多只有两棵子树(不存在度大于2的结点); ② 左子树和右子树次序不能颠倒。 问:具有3个结点的二叉树可能有几种不同形态? 有5种。 基本形态: 2. 二叉树的性质 (3+2) 讨论1:第i层的结点数最多是多少? (利用二进制性质可轻松求出) 性质1: 在二叉树的第i层上至多有2i-1个结点(i0)。 性质2: 深度为k的二叉树至多有2k-1个结点(k0)。 再提问:第i层上至少有 个结点? 1 讨论2:深度为k的二叉树,最多有多少个结点? (利用二进制性质可轻松求出) 2i-1个 2k-1个 性质3: 对于任何一棵二叉树,若2度的结点数有n2个,则叶子数(n0)必定为n2+1 (即n0=n2+1) 证明: ∵ 二叉树中全部结点数 n=n0+n1+n2(叶子数+1度结点数+2度结点数) 又∵二叉树中全部结点数 n=B+1 ( 总分支数+根结点 ) (除根结点外,每个结点必有一个直接前趋,即一个分支) 而 总分支数 B= n1+2n2 (1度结点必有1个直接后继,2度结点必有2个) 三式联立可得: n0+n1+n2= n1+2n2 +1, 即 n0=n2+1 物理意义:叶子数=2度结点数+1 讨论3:二叉树的叶子数和度为2的结点数之间有关系吗? 性质4: 具有n个结点的完全二叉树的深度必为?log2n?+1 性质5: 对完全二叉树,若从上至下、从左至右编号,则编号为i 的结点,其左孩子编号必为2i,其右孩子编号为2i+1;其双亲的编号必为i/2(i=1 时为根,除外)。 证明:根据性质2,深度为k的二叉树最多只有2k-1个结点,且完全二叉树的定义是与同深度的满二叉树前面编号相同,即它的总结点数n位
原创力文档


文档评论(0)