- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
知识与技能
理解遍历算法;掌握遍历规则;体会遍历算法的应用。
过程与方法
通过遍历规则讲解和自主总结遍历思想及算法的教学过程,掌握学习分析总结问题的方法。
实现价值
体会复杂数据结构在计算机中的存储方式及组织结构;学会解决如何合理的用计算机程序处理复杂数据。
教学重点
掌握二叉树的遍历方法。
理解二叉树的遍历算法
教学难点
二叉树遍历的应用。
重
点
难
点
教 学 过 程
引导
讲授
分析
总结
问题引入
3* (2+5) /(9-6)=
7
先算哪个呢?
借助二叉树
将算术表达式画成一棵二叉树
它的中序遍历序列为:
3 * 2 + 5 / 9 - 6
它的后序遍历序列为:
2 5 + 3 * 9 6 - /
中缀表达式(人的思维)
后缀表达式(电脑的思维)
遍历定义——
遍历用途——
遍历方法——
指按某条搜索路线遍访每个结点且不重复(又称周游)。
它是树结构插入、删除、修改、查找和排序运算的前提,是二叉树一切运算的基础和核心。
对每个结点的查看通常都是“先左后右” 。
基础知识-遍历规则
二叉树由根、左子树、右子树构成,定义为D、 L、R
以根结点为参照系
注:“先、中、后”的意思是指访问的结点D是先于子树出现还是后于子树出现。
D、 L、R的组合定义了六种可能的遍历方案:
LDR, LRD, DLR, DRL, RDL, RLD
若限定先左后右,则有三种实现方案:
DLR LDR LRD
先序遍历 中序遍历 后序遍历
基础知识-先序遍历
D L R
先序遍历序列:A B D C
先序遍历(DLR):
特点:任意一个结点均处在其子女结点的前面(根结点在前)
有什么特点?
分析思想总结算法
D L R
访问根结点
先序遍历根的左子树
先序遍历根的右子树
递归过程
先序遍历算法
DLR( node *root )
{if (root !=NULL)
{printf(“%d”,root-data);
DLR(root-lchild);
DLR(root-rchild);
} return(0); }
基础知识-中序遍历
L D R
中序遍历序列:B D A C
特点:根结点左右分别为左右子树的所有结点.
中序遍历(LDR):
讨论中序遍历
思想及算法?
基础知识-后序遍历
后序遍历(LRD):
讨论后序遍历
思想及算法?
L R D
后序遍历序列: D B C A
三种遍历算法总结
中序遍历算法
LDR(node *root)
{if(root !=NULL)
{LDR(root-lchild);
printf(“%d”,root-data);
LDR(root-rchild);
} return(0);}
后序遍历算法
LRD (node *root)
{if(root !=NULL)
{LRD(root-lchild);
LRD(root-rchild);
printf(“%d”,root-data);
} return(0);}
结点数据类型自定义
typedef struct node{
int data;
struct node *lchild,*rchild;
} node;
node *root;
先序遍历算法
DLR( node *root )
{if (root !=NULL) //非空二叉树
{printf(“%d”,root-data); //访问D
DLR(root-lchild); //递归遍历左子树
DLR(root-rchild); //递归遍历右子树
} return(0); }
三种遍历算法分析
1. 从前面的三种遍历算法可以知道:如果将print语句抹去,从递归的角度看,这三种算法是完全相同的,或者说这三种遍历算法的访问路径是相同的,只是访问结点的时机不同。
从虚线的出发点到终点的路径
上,每个结点经过3次。
第1次经过时访问,是先序遍历
第2次经过时访问,是中序遍历
第3次经过时访问,是后序遍历
2. 二叉树遍历的时间效率和空间效率
时间效率:O(n) //每个结点只访问一次
空间效率:O(n) //栈占用的最大辅助空间
精确值:树深为k的递归遍历需要k+1个辅助单元
实践内容-练习讨论
例1:
先序遍历
您可能关注的文档
最近下载
- 2025-2026学年初中数学八年级上册(2024)青岛版(2024)教学设计合集.docx
- 紫砂壶历代名家.doc VIP
- 某银行新员工国际业务培训课件.ppt VIP
- 有理数的乘方(公开课).ppt VIP
- 牙髓炎临床表现及诊断.ppt VIP
- 2025-2030年中国水利工程勘察设计市场运营状况与发展潜力分析报告.docx
- 六年级上册数学试题-第一二单元测试卷-苏教版-含答案.docx VIP
- 2024-2025学年初中数学八年级上册青岛版(2024)教学设计合集.docx
- NBT47021-2012甲型平焊法兰.docx VIP
- 2025年危险品水路运输从业资格考试复习题库资料(浓缩500题).pdf
文档评论(0)