- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机软件及应用]第六章 树和二叉树
第六章 树和二叉树 ——树 ? 6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树 6.4 线索二叉树 6.5 树和森林 6.6 哈夫曼树 树型结构是一类重要的非线性结构。树型结构是结点之间有分支,并且具有层次关系的结构,它非常类似于自然界中的树。树结构在客观世界国是大量存在的,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。等等。 树和线性结构对照: 6.1.1 树的定义 ? 6.1.2 树的基本术语 6.1.3 树的其他表示方法 树的基本术语 树的其它表示方法 6.1 树的定义和基本术语 ? 6.2 二叉树 6.3 遍历二叉树 6.4 线索二叉树 6.5 树和森林 6.6 哈夫曼树 6.2.1 二叉树定义 6.2.2 二叉树性质 6.2.3 2 种特殊的二叉树 6.3.4 二叉树的 2 种存储结构(顺序链式) 二叉树是一种特殊的树 二叉树和树的区别 二叉树中每个元素都恰好有两棵子树(其中一个或两个可能为空)。而树中每个元素可有若干子树。 在二叉树中每个元素的子树都是有序的,也就是说,可以用左、右子树来区别。而树的子树间是无序的。 二叉树的类型定义 ADT BinaryTree { 数据对象:D 是具有相同特性的数据元素的集合。 数据关系: 若 D 为空集,称 BinaryTree 为空二叉树; 否则 关系 R={H}: (1) 在 D 中存在唯一的称为根的数据元素 root,它在关系 H 下无前驱; (2) D 中其余元素必可分为两个互不相交的子集 L 和 R,每一个子集都是一棵符合本定义的二叉树,并分别为 root 的左子树和右子树。如果左子树 L 不空,则必存在一个根结点 ,它是 root 的左后继(root, ∈H),如果右子树 R 不空,则必存在一个根结点 为 root 的右后继(root, ∈H)。 基本操作P: {结构初始化} InitBiTree(T); 操作结果:构造空二叉树 T。 ????CreateBiTree(T, definition); 初始条件:definition 给出二叉树 T 的定义。 操作结果:按 definition 构造二叉树 T。 {销毁结构} DestroyBiTree(T); 初始条件:二叉树 T 存在。 操作结果:销毁二叉树 T。 {引用型操作} BiTreeEmpty(T); 初始条件:二叉树 T 存在。 操作结果:若T为空二叉树,则返回 TRUE,否则返回 FALSE。 ? BiTreeDepth(T); 初始条件:二叉树 T 存在。 操作结果:返回 T 的深度。 Root(T); 初始条件:二叉树 T 存在。 操作结果:返回 T 的根。 Value(T, e); 初始条件:二叉树 T 存在,e 是 T 中某个结点。 操作结果:返回 e 的值。 Parent(T, e); 初始条件:二叉树 T 存在,e 是 T 中某个结点。 操作结果:若e是T的非根结点,则返回它的双亲,否则返回空。LeftChild(T, e); 初始条件:二叉树 T 存在,e 是 T 中某个结点。 操作结果:返回 e 的左孩子。若 e 无左孩子,则返回空。RightChild(T, e); 初始条件:二叉树 T 存在,e 是 T 中某个结点。 操作结果:返回 e 的右孩子。若 e 无右孩子,则返回空。LeftSibling(T, e); 初始条件:二叉树 T 存在,e 是 T 中某个结点。 操作结果:返回 e 的左兄弟。若 e 是其双亲的左孩子或无左兄弟,则返回空。 RightSibling(T, e); 初始条件:二叉树 T 存在,e 是 T 的结点。 操作结果:返回 e 的右兄弟。若 e 是其双亲的右孩子或无右兄弟,则返回空。PreOrderTraverse(T, visit()); 初始条件:二叉树 T 存在,visit 是对结点操作的应用函数。 操作结果:先序遍历 T,对每个结点调用函数 visit 一次且仅一次。一旦 visit() 失败,则操作失败。InOrderTraverse(T, vsit()); 初始条件:二叉树 T 存在,visit 是对
您可能关注的文档
- [计算机软件及应用]vcenter+SQL安装.doc
- [计算机软件及应用]VFP课件第1-2章-11.ppt
- [计算机软件及应用]SciFEA30说明书.pdf
- [计算机软件及应用]Windows Server 2003 AD应用程序目录分区深入了解.doc
- [计算机软件及应用]VMware虚拟化成功案例.ppt
- [计算机软件及应用]win7系统安装SQL Server2005.doc
- [计算机软件及应用]VM安装Centos.doc
- [计算机软件及应用]Windows工作流WF框架介绍.ppt
- [计算机软件及应用]WCMDA网络知识介绍RAN.ppt
- [计算机软件及应用]WL第4章-选择结构程序设计.ppt
- 酮症酸中毒早期诊断-第1篇-洞察及研究.docx
- 2025浙江物产国际校园春季招聘37人笔试历年参考题库附带答案详解(10卷合集).docx
- 2025江苏苏州城投产业发展有限公司专业化青年人才定岗特选录用人员笔试历年参考题库附带答案详解(10卷合集).docx
- 个性化驾驶模式优化-洞察及研究.docx
- 电影风声观后感总结(通用4篇).docx
- 2025年江苏宜兴市公用建环资源循环利用有限公司公开招聘劳务派遣人员7人笔试历年参考题库附带答案详解(10卷合集).docx
- 电子商务策划方案十三篇.docx
- XX年小学创建平安校园工作计划.docx
- 店面转让协议范本(精选29篇).docx
- 2025江苏扬州中化集团高级工艺工程师招聘6人笔试历年参考题库附带答案详解(10卷合集).docx
文档评论(0)