- 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章 树 树与图属于非线性结构 4. 1 树的概念 4.1树的概念——树型结构应用举例 “资源管理器” 界面。 4.1树的概念——树的结构定义 树(Tree)是n(n=0)个结点的有限集合。当n=0时,称为空树;当n0时,称为非空树。 在任意一棵非空树中: (1)有且仅有一个特定的结点,称为树根(root),它没有直接前驱,但有零个或多个直接后继 (2)当n1时,其余结点被划分成m个互不相交的子集,每个子集又是一棵树,被称为子树(subtree)。 4.1树的概念——树的表示方法(层次) 4.1树的概念——树的表示方法(集合) 4.1树的概念——树的表示方法(凹凸图) 4.1树的概念——树的表示方法(广义表) 4.1树的概念——基本术语 结点 结点的度,树的度 叶子(终端结点) 非终端结点 结点的层次 树的深度 有序树,无序树 森林 4.1树的概念——基本术语 孩子 双亲 兄弟 祖先 子孙 堂兄弟 4. 2 二叉树的基本概念和主要性质 二叉树定义 二叉树 由n(n=0)个元素组成。 当n=0时,为空二叉树; 当n0时,有且仅有一个元素为根,其余结点分成最多两个互不相交的子集,子集有左右顺序,每个子集又是一个二叉树。 4.2二叉树的概念和性质——二叉树的五种形态 满二叉树 深度为k,且有2k-1个结点的二叉树。 完全二叉树:一棵深度为h,结点数为n的二叉树,如果其结点1?n的位置序号分别与满二叉树的结点1?n的位置序号一一对应,则为完全二叉树。 二叉树性质(性质1) 在二叉树的第i层上至多有2 i-1个结点。 证明:(数学归纳法) i=1,只有根结点, 2 i-1=20=1 成立 设 1?ji,2 j-1成立,即 j=i-1,2 j-1=2 i-2 则第i层至多有2 i-2*2=2 i-1 二叉树性质(性质2) 深度为h的二叉树至多有2h-1个结点。 证明: 利用性质1 20+21+22+23+...+2 h-1=2h-1 二叉树性质(性质3) 对于一个非空的二叉树,若其具有n0个叶子结点,有n2个度为2的结点,则有:n0=n2+1 证明: n=n0+n1+n2 (1) B=n1+2n2; n=B+1 n=n1+2n2+1 (2) (2)-(1)得: n0=n2+1 二叉树性质(性质4) 具有n个结点的完全二叉树的深度为 ?log2n?+1。 证明: 设深度为k,则有: 2 k-1-1n=2k-1 2 k-1=n2k k-1=log2nk 因为k是整数,所以k= ? log2n ? +1 二叉树性质(性质5) 如i=1,则序号为i的结点是根结点,无双亲结点;如i1,则序号为i的结点的双亲结点序号为? i/2 ? ; 如2×in,则序号为i的结点无左孩子;如2×i≤n,则序号为i的结点的左孩子结点的序号为2×i ; 如2×i+1n,则序号为i的结点无右孩子;如2×i+1≤n,则序号为i的结点的右孩子结点的序号为2×i+1。 4. 3 二叉树的存储 顺序存储结构:顺序存储就是用一组地址连续的存储单元来存放一棵二叉树的结点。 适用于存储完全二叉树或满二叉树。 二叉树顺序存储结构定义 ================== typedef struct { DataType data[ ]; int num; }BTree; 二叉树链式存储结构定义 ================== typedef struct BTNode{ DataType data; struct BTNode *lchild, *rchild; }BTree; 4.4 二叉树的遍历 遍历二叉树:按某种搜索路径巡访二叉树中每个结点一次且仅一次的过程。 访问顺序有: DLR, DRL LDR, RDL LRD, RLD 遍历二叉树 DLR 先序遍历 LDR 中序遍历 LRD 后序遍历 先序遍历递归算法 Void DLR (BTree *T) { if (T) { Visit(T-data); DLR (T-lchild) ; DLR(T-rchild) ; } } 中序遍历递归算法 Void LDR
您可能关注的文档
- 计算机组装、维护与维修教程 作者 刘瑞新 第14章 笔记本电脑.ppt
- 计算机组装与维修 作者 张兴明 第1章认识计算机组件.ppt
- 计算机组装与维修 作者 张兴明 第2章组装计算机硬件.ppt
- 计算机组装与维修 作者 张兴明 第3章 BIOS基本设置.ppt
- 计算机组装与维修 作者 张兴明 第4章硬盘与硬盘分区.ppt
- 计算机组装与维修 作者 张兴明 第5章安装操作系统.ppt
- 计算机组装与维修 作者 张兴明 第7章安装常用应用软件.ppt
- 计算机辅助工艺设计 capp系统设计 作者 赵良才 主编 目录.ppt
- 计算机辅助绘图与设计-AutoCAD 2006 第3版 作者 赵国增 主编 第八章.ppt
- 计算机辅助绘图与设计-AutoCAD 2006 第3版 作者 赵国增 主编 第二十章.ppt
- 计算机软件技术基础 作者 李淑芬 第7章.ppt
- 计算机软件技术基础 作者 李淑芬 第9章.PPT
- 计算机软件技术基础 作者 牟艳 陈慧萍 第3章 线性结构.ppt
- 计算机软件技术基础 作者 牟艳 陈慧萍 第5章 图形结构.ppt
- 计算机软件技术基础 作者 牟艳 陈慧萍 第6章 查找和排序.ppt
- 计算机软件技术基础 作者 牟艳 陈慧萍 第7章 操作系统引论.ppt
- 计算机软件技术基础 作者 牟艳 陈慧萍 第8章 处理器管理.ppt
- 计算机软件技术基础 作者 牟艳 陈慧萍 第9章 存储管理.ppt
- 计算机软件技术基础 作者 牟艳 陈慧萍 第10章 设备管理.ppt
- 计算机软件技术基础 作者 牟艳 陈慧萍 第11章 文件管理.ppt
文档评论(0)