(第九讲).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(第九讲).ppt

* (第九讲) 绍兴文理学院 计算机系计算机应用教研室 AAA BBBB 数据的一对多 关系是怎样 建立和访问的? AAA BBBB 第6章 树和二叉树(2) 一、教学目的:明确遍历二叉树的概念;掌握二叉树先序、中序和后序遍历的方法及递归和非递归算法;初步掌握二叉树的应用;算法设计训练。 二、教学重点:遍历二叉树的概念;二叉树先序、中序和后序遍历的方法及递归和非递归算法;二叉树的应用;算法设计训练。 三、教学难点:二叉树先序、中序和后序遍历的非递归算法;二叉树的应用;算法设计训练。 四、教学过程: AAA BBBB §5.3 编历二叉树和线索二叉树 §5.3.1 编历二叉树(Traversing binary tree) 1、遍历二叉树的概念 遍历二叉树是指按某种搜索路径访问二叉树的每个结点,而且每个结点访问且仅被访问一次。 访问的含义很广,可以是对结点的各种处理,如修改结点数据、输出结点数据。 遍历是各种数据结构最基本的操作,许多其他的操作可以在遍历基础上实现。 2、二叉树的遍历方法 (1) 二叉树的遍历的特殊性 “遍历”是任何类型均有的操作,对线性结构而言,只有一条搜索路径(因为每个结点均只有一个后继),故不需要另加讨论。 而二叉树是非线性结构,每个结点有两个后继,则存在如何遍历即按什么样的搜索路径遍历的问题。 TKS * * AAA BBBB 对“二叉树”而言,可以有三条搜索路径: Ⅰ 先上后下的按层次遍历; Ⅱ 先左(子树)后右(子树)的遍历; Ⅲ 先右(子树)后左(子树)的遍历。 A F G E D C B (2) 二叉树的遍历方法 二叉树由根、左子树、右子树三部分组成; 二叉树的遍历可以分解为:访问根,遍历左子树和遍历右子树; 令: L:遍历左子树 T:访问根结点 R:遍历右子树 有六种遍历方法:T L R,L T R,L R T,T R L,R T L,R L T 约定先左后右,有三种遍历方法:T L R、L T R、L R T,分别称为:先序遍历、中序遍历、后序遍历。 TKS * * AAA BBBB (3) 三种编历二叉树的(递归)操作定义 A F G E D C B ① 先序编历二叉树的操作定义(T L R) 若二叉树为空,则为空操作;否则 Ⅰ 访问根结点 Ⅱ 先序编历左子树, 即按T L R的顺序遍历左子树 Ⅲ 先序编历右子树, 即按T L R的顺序遍历右子树 先序遍历序列:A,B,D,E,G,C,F ② 中序编历二叉树的操作定义(L T R) 若二叉树为空,则为空操作;否则 Ⅰ 中序编历左子树,即按 L T R 的顺序遍历左子树 Ⅱ 访问根结点 Ⅲ 中序编历右子树,即按 L T R 的顺序遍历右子树 中序遍历序列: D,B,G,E,A,C,F TKS * * AAA BBBB ③ 后序编历二叉树的操作定义(L R T) A F G E D C B 若二叉树为空,则空操作,否则 Ⅰ 后序编历左子树, 即按L R T的顺序遍历左子树 Ⅱ 后序编历右子树, 即按L R T的顺序遍历右子树 Ⅲ 访问根结点 后序遍历序列:D,G,E,B,F,C,A d b e a * - / c + 例:先序、中序、后序遍历右图所示的二叉树 先序序列:+,*,a,-,b,c,/,d,e --表达式的前缀表示(波兰式) 中序序列:a,*,b,-,c,+,d,/,e --表达式的中缀表示 后序序列:a,b,c,-,*,d,e,/,+ --表达式的后缀表示(逆波兰式) TKS * * AAA BBBB 基本思想:输入(在空子树处添加字符*的二叉树的)先序序列(设每个元素是一个字符)按先序遍历的顺序,建立二叉链表的所有结点并完成相应结点的链接。 3、先序序列顺序建立二叉树 A F E D C B * * * * * * * bitree create_tree(bitree t) {char ch; cinch; if(ch==*) t=NULL; else {t=new nodeb; t-data=ch;t-lchild=t-rchild=NULL; t-lchild=create_tree(t-lchild); t

文档评论(0)

gshshxx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档