- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二章 二叉树
第十二章 二叉树
上一章介绍了链表结构:一种用非连续存储空间进行数据存储的线性结构。每个存储空
间作为一个结点,存储一个元素;所有结点存储的元素的类型相同。指针表示结点之间的前
后关系,整个数据结构看起来象一根链条。与链表类似,“二叉树”也是用一组不连续的存
储空间来存储一组同类型的元素,并用指针将这些存储空间连接起来;每个存储空间称作树
上的一个“结点”。不同的是,二叉树的指针表示“结点”之间的“父-子”关系,形成一种
非线性的数据存储结构。它看起来象一棵倒立的树。例如,图 12-1 是一棵二叉树,所存储
9 8 7 5 4 3 2
的多项式 x +4x -8x +3x +18x -4x +7x +15 。每个结点存储两个整数,代表多项式的一项,
分别是它的系数和幂。
root 18,4
4 ,8 7,2
根结点的
右子树
1,9 -8,7 -4,3 15,0
3,5
图 12-1 用二叉树表示多项式的例子
二叉树可用来存储任何类型的元素,每个结点存储一个元素的值,并有两个指针:左指
针、右指针。两个结点 A 和 B ,如果A 有一个指针指向 B ,则将A 称作 B 的“父结点”、B
称作 A 的“子结点”。每个结点最多可以有两个子结点,左指针指向的结点称作“左子结点”,
右指针指向的结点称作“右子结点”。一个结点最多只有一个父结点。
叶子结点:一个结点如果没有任何子结点,则将其称作一个“叶子结点”、或
者简称作“叶子”。
根结点:一棵二叉树中有唯一的一个结点,不是其它任何结点的子结点,这个
结点称作二叉树的“根结点”、或者简称作“根”。根结点位于二叉树的最顶层。
结点的层数:根所在的层数为 0 ;其它结点的层数是父结点所在的层数加 1。
二叉树的深度:叶子结点所在的最大层数称作树的深度。上例中二叉树的深度
是 3 。
子树:假设 B 是 A 的子结点,从B 出发能达到的全部结点构成一棵以B 为根
的树,称为A 的一棵子树。如果B 是 A 的左子结点,则该子树称为A 的左子树;如果
B 是 A 的右子结点,则该子树称为A 的右子树。
12.1 二叉树的建立
本节介绍有了一组数据后,如何建立一棵二叉树来存储这些元素的值。先看一个例子:
从一个文本文件中读入一组整数,用一棵二叉树存储这些整数。读入的第一个整数存储在根
结点 root 上。以后每读一个整数时,向 root 代表的二叉树上插入一个新的结点,存储所读
入的整数。在最终的二叉树上,任取一个结点 A :A 的值不小于它左子树上任何的值、它右
子树上每个值都大于 A 的值。下面的程序演示了建立这样的一棵二叉树的过程。
程序的第 4~9 行首先定义了二叉树结点的数据类型,包括两部分:数据域、指针域。数
据域部分定义了要存储的数据元素的类型。指针域定义两个指针:左指针、右指针;它们的
类型必须与二叉树结点的数据类型一致。
程序的第 11~27 行定义了一个递归函数 insertTree(TreeNode *root, int val),向root 所指
向的二叉树添加新的结点。每次添加一个结点,存储元素值val 。如果root 所指向的二叉树
为空,则将新结点作为二叉树的根结点,否则:
(1) 如果 val 小于或等于 root 结点的值,将新结点插在 root 结点的左子树上;
(2) 如果 val 大于 root 结点的值,将新结点插在 root 结点的右子树上。
程序的第 29~34 行定义了一个递归函数 delTree(TreeNode *root),删除root 所指向的二
叉树,释放
您可能关注的文档
- 改善提案课程培训教材.ppt
- 盐城大力发展新能源产业.pdf
- 基因表达数据的预处理方法.pdf
- 软件测试(14-1)_缺陷跟踪管理.ppt
- 牛顿定律应用补充题.ppt
- 日本企业实现自我产业升级.doc
- 创伤失血性休克复苏新理念及2007欧洲治疗指南.pdf
- 燃气管道带气开孔施工.doc
- 山东圣荣建设集团商业模式的研究.doc
- 大自然场景的布光及材质详解.doc
- 2-红河州建筑施工安全生产标准化工地复核评分表(2022年修改版).docx
- 6.锡通项目2018年下半年工作会汇报材料(2018.7.9).docx
- 2018道路工程知识点汇总(新版).docx
- 附件3:月度生产例会安全汇报资料-站台门项目部.docx
- 附件2:广东建工集团2018年度科技成果汇总表.DOC
- 马武停车区、三汇停车区停车位管理系统,0#台账缺量.doc
- 攀成钢委办发〔2015〕19号(党风廉政建设责任考核与追究办法).doc
- 1-红河州建筑工程质量管理标准化复核评分表(2022年修改版).docx
- 中交第三公路工程局第四工程分公司项目经济合同结算管理办法(修订).doc
- 厂站安全操作规程汇编.doc
最近下载
- 提高施工现场的安全作业进及保障.pptx VIP
- 2024-2025学年初中道德与法治七年级下册统编版(部编版)(2024)教学设计合集.docx
- 人教版六年级数学下期《圆柱与圆锥》专项应用题.docx
- 基础化学教程(无机与分析化学)(第二版)傅洵习题参考答案.pdf
- 【新教材】湘教版(2019)高中地理必修第一册课本活动题答案.docx
- 2024年贵州省毕节市中考英语试题卷(含答案逐题解析).docx
- 运动治疗Brunnstrom技术.pptx VIP
- 彩链招商方案彩色三维码 彩链代理招商方案.ppt VIP
- 模拟电子技术基础期末试题.doc VIP
- 公路养护作业单位资质管理系统企业用户手册.doc
文档评论(0)