1、课 程 教 案课程名称: 数据结构授课专业: 计算机科学与技术主讲教师: 2013 年 10 月 19 日讲授主题 遍历二叉树及二叉树的遍历算法举例授课时数 1教学目的:1. 掌握二叉树遍历的算法。教材中介绍了三种(先、中、后序)方法。2. 遍历算法是基础,由此导出许多实用的算法,如求二叉树的高度、各结点的层次数、度为 0、1、2的结点数等。3由二叉树的遍历的前序和中序序列或后序和中序序列可以唯一构造一棵二叉树,要会手工模拟及编写算法。由前序和后序序列不能唯一确定一棵二叉树。4.通过典型算法加深的二叉树的理解。本章节的教学重点、难点:重点是二叉树的递归遍历算法 难点是遍历算法的应用教学方法、教
2、学手段:1.二叉树的遍历算法(20 分钟)3.二叉树的遍历算法举例(25 分钟)使用教具:计算机和投影仪教 学 内 容(讲授提纲)1. 二叉树的遍历的定义:按某种规律,访问二叉树的结点,使每个结点被访问一次且仅一次。访问的含义包括查询、打印、计算、修改等对结点的操作。遍历的过程,实际上是按某种规律,将一个非线性结构的结点排成一个线性序列,使每个结点在这种遍历中有唯一前驱和后继关系。一棵二叉树的遍历序列(在某种遍历方式下)是唯一的,但一般说,二叉树不能由某一遍历序列唯一确定。2. 二叉树的递归遍历算法二叉树 = 根结点 + 左子树 + 右子树将树的遍历转变为子树的遍历。若二叉树为空,则空操作,否
3、则:访问根结点;( )遍历左子树;( )遍历右子树; 一句话,根据“访问根结点;”在三句话中位置的不同,分为前序、中序、后序遍历。3. 二叉树的先序遍历先序算法:根左右 二叉树为空,结束访问根结点先序遍历左子树先序遍历右子树4. 二叉树的中序遍历中序算法:左根右 二叉树为空,结束 序遍历左子树 问根结点中序遍历右子树5. 二叉树的后序遍历后序算法:左右根 二叉树为空,结束 序遍历左子树 序遍历右子树访问根结点6.应用举例先序序列:根左右 ABDECF中序序列:左根右 DBEAFC后序序列:左右根 DEBFCA遍历序列与二叉树不是一一对应的。例:若前序序列为 123,对应的二叉树有 5 种。7.
4、 由二叉树遍历得到的一些重要性质已知二叉树的先序序列和中序序列,可以唯一确定一棵二叉树。已知二叉树的后序序列和中序序列,可以唯一确定一棵二叉树;已知二叉树的先序序列和后序序列,不能唯一确定一棵二叉树;已知二叉树的层次序列和中序序列,可以唯一确定一棵二叉树。讨论:二叉树和其遍历序列是否一一对应?先序+中序=二叉树示例:先序: A B H F D E C K G中序: H B D F A E K C G递归问题:分解策略,最终小问题的解决方案。后序+中序=二叉树 OK先序+后序=二叉树 NO8、实例:再论表达式的存储结构表达式可以用二叉树表示,对二叉树进行前序、中序和后序遍历可以得到表达式的前缀、
5、中缀和后缀表示。用二叉树表示表达式: (a+b)+c*(d+e)+f)*(g+h)前序遍历:*+ab*c+def+gh中序遍历:a+b+c*d+e+f*g+h后序遍历:ab+cde+*+f+gh+*本章节的教学重点、难点:重点是二叉树的递归遍历算法 难点是遍历算法的应用教学方法、教学手段:1.二叉树的遍历算法(20 分钟)3.二叉树的遍历算法举例(25 分钟)使用教具:计算机和投影仪自测题:6.9 对二叉树的结点从 1 开始进行连续编号,要求每个结点的编号大于其左、右孩子的编号,同一结点的左、右孩子中,其左孩子的编号小于其右孩子的编号,是采用何种次序的遍历实现编号的。6.12 对任意一棵树,设它有 n 个结点,这 n 个结点的度数之和为多少?作业与上机:1、根据含空标志的先序序列,建立二叉树2、根据先序序列、中序序列,建立二叉树参考资料:1陈守孔等著 算法与数据结构 C 语言版 机械工业出版社 20072陈守孔等著 算法与数据结构考研试题精析 机械工业出版社 20083严蔚敏等著 数据结构 C 语言版 清华大学出版社 2005