- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 树和二叉树;请设计一种存储方法,能便捷地找到每个文件所在的存储路径。即要求输入某个文件名称后,显示该文件在U盘中的存储路径,若U盘中无该文件,则显示“文件未找到”。;已知算术表达式6+(7-3)/2对应的表达式树如图所示:
请求出该表达式的值。;
;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;6.1.1 树;研究二叉树的意义?
二叉树的结构相对简单,其运算也自然简单,便于初学者入门。
由于多叉树可以借助一定的规则转换为二叉树,因此二叉树结构在应用中具有非常重要的地位。 ;二叉树的定义
二叉树是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成。;二叉树的特点
每个结点的度只可能是0,1,2;
二叉树是有序树,即使某结点只有一棵子树,也要区分该子树是左子树还是右子树。 ;二叉树的5种基本形态;例:画出具有3个结点的树和具有3个结点的二叉树的形态;性质1 :二叉树的第i层上最多有2i-1个结点(i≥1)。
推广:深度为h的k叉树中,第i层上最多具有ki-1个结点。;性质2:一棵深度为k的二叉树中,最多有2k-1个结点,最少有k个结点。
深度为k且具有2k-1个结点的二叉树一定是满二叉树,
深度为k且具有k个结点的二叉树不一定是斜树。 ;性质3:在一棵二叉树中,如果叶子结点数为n0,度为2的结点数为n2,则有: n0=n2+1。证明: 抓住结点总数=结点总度数+1n0+n1+n2=n1+2*n2+1 n0=n2 +1
推广:已知一棵树度为m的树中有n1个度为1的结点,n2个度为2的结点,…nm个度为m的结点,问该树中有多少片叶子?
证明:根据结点总数=结点总度数+1 n0+n1+n2+…+nm=n1+2*n2+…+m*nm+1
= n0=1+n2+…+(m-1)nm;特殊的二叉树
满二叉树
在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上。
满二叉树的特点:
叶子只能出现在最下一层;
只有度为0和度为2的结点。;不是满二叉树,虽然所有分支结点都有左右子树,但叶子不在同一层上。;特殊的二叉树
完全二叉树
对一棵具有n个结点的二叉树按层序编号,如果编号为i(1≤i≤n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中的位置完全相同。;在满二叉树中,从最后一个结点开始,连续去掉任意个结点,即是一棵完全二叉树。;;例:在有n个结点的满二叉树中,有多少个叶子结点?
因为在满二叉树中没有度为1的结点,只有度为0的叶子结点和度为2的分支结点,所以,n= n0 + n2 n0=n2 + 1 即叶子结点n0=(n + 1)/2 ;任一个有n个结点的二叉树,有m个叶子结点,则非叶子结点数(度为2)有多少个 ?
因为 n0=n2 + 1 n2 = n0 – 1n2 = m - 1;证明:假设具有n个结点的完全二叉树的深度为k,根据完全二叉树的定义和性质2,有下式成立
2k-1 ≤ n < 2k; ;性质5 对一棵具有n个结点的完全二叉树中从1开始按层序编号,则对于任意的序号为i(1≤i≤n)的结点(简称为结点i),有:
(1)如果i>1,则结点i的双亲结点的序号为 i/2;如果i=1,则结点i是根结点,无双亲结点。
(2)如果2i≤n,则结点i的左孩子的序号为2i; 如果2i>n,则结点i无左孩子。
(3)如果2i+1≤n,则结点i的右孩子的序号为2i+1 如果2i+1>n,则结点 i无右孩子。 ;;6.1.2 二叉树;6.1.2 二叉树;6.1.2 二叉树;6.1.2 二叉树;;一棵斜树的顺序存储会怎样呢?;6.1.2 二叉树;typedef struct BiTNode
{
ElemType data;
struct BiTNode *lchild,*rchild;
} *BiTree;;;;6.1.2 二叉树;如果限定先左后右,则二叉树遍历方式有三种:
先序:DLR
中序:LDR
后序:LRD;先序遍历的概念
①若二叉树为空,则空操作返回;
(否则)
②访问根结点;
③先序遍历根结点的左子树;
④先序遍历根结点的右子树。;先序遍历——递归算法;中序遍历的概念
①若二叉树为空,则空操作返回;
(否则)
②中序遍历
您可能关注的文档
- 数据分析方法及应用──基于SPSS和EXCEL环境 (2).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (3).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (4).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (5).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (6).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (7).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (8).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (9).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (13).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (14).ppt
最近下载
- Wexner便秘评分及罗马三诊断标准.doc VIP
- 施工材料进场检验及存储管理方案.docx VIP
- 双金属温度计与压力式温度计检定规程.pdf
- 成人呼吸道感染病原诊断核酸检测技术临床应用专家共识( 2023.pdf VIP
- 人教版(PEP)新教材小学四年级英语上册Unit 1 Helping at home单元测试卷及答案.docx VIP
- Python程序设计PPT课件(共12章)第11章 正则表达式.pptx VIP
- 红领巾伴我成长主题班会课.pptx VIP
- 路灯安装施工组织设计.pdf VIP
- 初步设计及概算评估咨询服务方案投标文件(技术方案).doc
- 危险性上消化道出血急诊救治快速通道.docx VIP
文档评论(0)