您好,欢迎访问三七文档
安徽新华电脑专修学院课堂教学教案(电脑应用课使用)课程名称数据结构教学对象新华软工教材数据结构(C语言)授课内容第六章树和二叉树课时2教学目的与要求了解树、森林的定义;掌握二叉树的定义、性质、存储结构;掌握二叉树的遍历、树和森林的存储,哈夫曼树的应用重点、难点重点:二叉树相关操作难点:二叉树的三种遍历课型电脑+理论教学方法投影、讨论、板书教学过程设计(包括讲授知识、演示内容及案例、提问及学生演示内容)任务一、树的有关概念前言:树型结构是一类重要的非线性数据结构。其中以树和二叉树最为常用;树结构在客观世界中广泛存在,如人类社会的族谱和各种社会组织机构都可用树形象的表示出来等等。一、树的概念树形结构是一种重要的非线性结构,讨论的是层次和分支关系。树是n个结点的有限集合,在任一棵非空树中:(1)有且仅有一个称为根的结点。(2)其余结点可分为个互不相交的集合,而且这些集合中的每一集合都本身又是一棵树,称为根的子树。教学过程设计(续表)树是递归结构,在树的定义中又用到了树的概念例:上面的图是一棵树T={A,B,C,D,E,F,G,H,I,J,K,L,M}A是根,其余结点可以划分为3个互不相交的集合:T1={B,E,F,K,L},T2={C,G},T3={D,H,I,J,M}这些集合中的每一集合都本身又是一棵树,它们是A的子树。例如对于T11,B是根,其余结点可以划分为2个互不相交的集合:T11={E,K,L},T12={F},T11,T12是B的子树。从逻辑结构看:1)树中只有根结点没有前趋;2)除根外,其余结点都有且仅一个前趋;3)树的结点,可以有零个或多个后继;4)除根外的其他结点,都存在唯一条从根到该结点的路径;5)树是一种分枝结构(除了一个称为根的结点外)每个元素都有且仅有一个直接前趋,有且仅有零个或多个直接后继。二、树的应用1、树可表示具有分枝结构关系的对象例1.家族族谱例2.单位行政机构的组织关系2、树是常用的数据组织形式有些应用中数据元素之间并不存在间分支结构关系,但是为了便于管理和使用数据,将它们用树的形式来组织。例3计算机的文件系统不论是DOS文件系统还是window文件系统,所有的文件是用树的形式来组织的。JIACBDHGFEKLM教学过程设计(续表)三、树的表示1)图示表示2)二元组表示3)嵌套集合表示4)凹入表示法(类似书的目录)四、树的基本术语树的结点:包含一个数据元素及若干指向子树的分支;孩子结点:结点的子树的根称为该结点的孩子;双亲结点:B结点是A结点的孩子,则A结点是B结点的双亲;兄弟结点:同一双亲的孩子结点;堂兄结点:同一层上结点;祖先结点:从根到该结点的所经分支上的所有结点子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙结点层:根结点的层定义为1;根的孩子为第二层结点,依此类推;树的深度:树中最大的结点层结点的度:结点子树的个数树的度:树中最大的结点度。叶子结点:也叫终端结点,是度为0的结点;分枝结点:度不为0的结点;有序树:子树有序的树,如:家族树;无序树:不考虑子树的顺序;森林;互不相交的树集合;森林和树之间的联系是:一棵树去掉根,其子树构成一个森林;一个森林增加一个根结点成为树。复习思考题作业上机任务案例分析:例1.家族族谱例2.单位行政机构的组织关系参考文献课后记(或归纳小结)本章主要介绍树的定义,日常应用,树的概念;为以后的二叉树学习带来好的理解安徽新华电脑专修学院课堂教学教案(电脑应用课使用)课程名称数据结构教学对象新华软工教材数据结构(C语言)授课内容第六章树和二叉树课时2教学目的与要求了解树、森林的定义;掌握二叉树的定义、性质、存储结构;掌握二叉树的遍历、树和森林的存储,哈夫曼树的应用重点、难点重点:二叉树相关操作难点:二叉树的三种遍历课型电脑+理论教学方法投影、讨论、板书教学过程设计(包括讲授知识、演示内容及案例、提问及学生演示内容)任务一、树的有关概念(续)复习上一次的内容,然后提出问学生,接着从上一次内容进入今天新的课程,让课程内容的完整性五、树的基本操作树的应用很广,应用不同基本操作也不同。下面列举了树的一些基本操作:1)initiate(T);T树的初始化,包括建树。2)root(T);求T树的根。3)parent(T,x):求T树中x结点的双亲结点。4)Child(T,x,i):求T树中x结点的第i个孩子结点。教学过程设计(续表)5)right_sibling(T,x):求T树中x结点的右兄弟6)insert_Child(y,i,x):将根为x的子树置为y结点的第i个孩子7)del_child(x,i);删除x结点的第i个孩子8)traverse(T);遍历T树。按某个次序依次访问树中每一个结点,并使每个结点都被访问且只被访问一次。9)clear(T);置空T树任务二、二叉树树是一种分枝结构的对象,在树的概念中,对每一个结点孩子的个数没有限制,因此树的形态多种多样,本章我们主要讨论一种最简单的树——二叉树一、二叉树的概念二叉树:或为空树,或由根及两颗不相交的左子树、右子树构成,并且左、右子树本身也是二叉树。说明1)二叉树中每个结点最多有两颗子树;二叉树每个结点度小于等于2;2)左、右子树不能颠倒——有序树;3)二叉树是递归结构,在二叉树的定义中又用到了二叉树的概念;二、二叉树的基本形态(a)空树(b)仅有根(c)右子树空(d)左、右子树均在(e)左子树空三、应用举例AFGEDCB教学过程设计(续表)例1可以用二叉树表示表达式a+b*(c-d)-e/f例2双人比赛的所有可能的结局开局连赢两局或五局三胜四、二叉树性质性质1在二叉树的第i层上最多有2i-1个结点性质2深度为k的二叉树最多有2k-1个结点性质3设二叉树叶子结点数为n0,度为2的结点n2,则n0=n2+1此三个性质是对任何一棵二叉树都实用的复习思考题作业上机任务案例分析:例1:已知二叉树有50个叶子结点,则该二叉树的总结点数是多少(99)例2:已知完全二叉树的第七层有8个结点,则其叶子结点数是(36)参考文献课后记(或归纳小结)本章主要介绍二叉树的定义,二叉树的五种形态、还有它的性质,并举例说明这些性质安徽新华电脑专修学院课堂教学教案(电脑应用课使用)课程名称数据结构教学对象新华软工教材数据结构(C语言)授课内容第六章树和二叉树课时2教学目的与要求了解树、森林的定义;掌握二叉树的定义、性质、存储结构;掌握二叉树的遍历、树和森林的存储,哈夫曼树的应用重点、难点重点:二叉树相关操作难点:二叉树的三种遍历课型电脑+理论教学方法投影、讨论、板书教学过程设计(包括讲授知识、演示内容及案例、提问及学生演示内容)任务二、二叉树(续)复习上一次的内容,然后提问学生,接着从上一次内容进入今天新的课程,让课程内容的完整性满二叉树:如果深度为k的二叉树,有2k-1个结点则称为满二叉树。完全二叉树:如果深度为k的二叉树,有2k-1个结点则称为满二叉树;对其中的结点的编号:根的号为1,从上到下,从左到右每个结点依次加1为其编号且一一对应,称之为完全二叉树。下面是两个关于完全二叉树的性质:性质4:具有n个结点的完全二叉树的深度为:trunc(log2n)+1.trunc(x)为取整函数。教学过程设计(续表)对完全二叉树的结点编号:从上到下,每一层从左到右性质5:在完全二叉树中编号为i的结点1)若有左孩子,则左孩编号为2i2)若有右孩子,则右孩子结点编号为2i+13)若有双亲,则双亲结点编号为trunc(i/2)三.二叉树存贮结构1、二叉树的顺序结构满二叉树或完全二叉树的顺序结构:用一组连续的内存单元,按编号顺序依次存储完全二叉树的元素.例如,用一维数组bt[]存放一棵完全二叉树,将标号为i的结点的数据元素存放在分量bt[i-1]中。存储位置隐含了树中的关系,树中的关系是通过完全二叉树的性质实现的。例如,bt[5](i=6)的双亲结点标号是k=trunc(i/2)=3,双亲结点所对应的数组分量bt[k-1]=bt[2]非完全二叉树的顺序结构:按完全二叉树的形式补齐二叉树所缺少的那些结点,对二叉树结点编号,将二叉树原有的结点按编号存储到内存单元“相应”的位置上。但这种方式对于畸形二叉树,浪费较大空间。2、二叉链表二叉链表中每个结点包含三个域:数据域、左指针域、右指针域;图见课件Structnode{intdata;structnode*lch,*rch;};注:在含有n个结点的二叉链表中有n+1个空链域,这在线索二叉树中将利用到这些空的链域3、三叉链表三叉链表中每个结点包含四个域:数据域、双亲指针域、左指针域、右指针域Structnode{intdata;structnode*lch,*rch,*parent;};见课件和笔记复习思考题作业上机任务案例分析:例:给一个二叉树画这棵树的顺序存储和二叉链表的存储形式,另给一个顺序的存储形式来画出这棵二叉树参考文献课后记(或归纳小结)本章主要介绍完全二叉树和满二叉树的定义,还有它的两个性质;然后介绍二叉树的存储形式:顺序,二叉链表,三叉链表的形式安徽新华电脑专修学院课堂教学教案(电脑应用课使用)课程名称数据结构教学对象新华软工教材数据结构(C语言)授课内容第六章树和二叉树课时2教学目的与要求了解树、森林的定义;掌握二叉树的定义、性质、存储结构;掌握二叉树的遍历、树和森林的存储,哈夫曼树的应用重点、难点重点:二叉树相关操作难点:二叉树的三种遍历课型电脑+理论教学方法投影、讨论、板书教学过程设计(包括讲授知识、演示内容及案例、提问及学生演示内容)任务三、二叉树的遍历复习上一次的内容,然后提问学生,接着从上一次内容进入今天新的课程,让课程内容的完整性一、二叉树的遍历方法遍历:按某种搜索路径访问二叉树的每个结点,而且每个结点仅被访问一次。访问:含义很广,可以是对结点的各种处理,如修改结点数据、输出结点数据。遍历是各种数据结构最基本的操作,许多其他的操作可以在遍历基础上实现。二叉树由根、左子树、右子树三部分组成二叉树的遍历可以分解为:访问根,遍历左子树和遍历右子树教学过程设计(续表)令:L:遍历左子树T:访问根结点R:遍历右子树有六种遍历方法:TLR,LTR,LRT,TRL,RTL,RLT先序遍历(TLR)若二叉树非空(1)访问根结点;(2)先序遍历左子树;(3)先序遍历右子树;例:先序遍历右图所示的二叉树(1)访问根结点A(2)先序遍历左子树:即按TLR的顺序遍历左子树(3)先序遍历右子树:即按TLR的顺序遍历右子树中序遍历(LTR)若二叉树非空(1)中序遍历左子树(2)访问根结点(3)中序遍历右子树例:中序遍历右图所示的二叉树(1)中序遍历左子树:即按LTR的顺序遍历左子树(2)访问根结点A(3)中序遍历右子树:即按LTR的顺序遍历右子树后序遍历(LRT)若二叉树非空(1)后序遍历左子树(2)后序遍历右子树(3)访问根结点例:后序遍历右图所示的二叉树(1)后序遍历左子树:即按LRT的顺序遍历左子树(2)后序遍历右子树:即按LRT的顺序遍历右子树(3)访问根结点A画一个二叉树然后写出它的先序遍历,中序遍历,后序遍历复习思考题作业上机任务案例分析:例:画一个二叉树然后写出它的先序遍历,中序遍历,后序遍历参考文献课后记(或归纳小结)本章主要介绍二叉树三种遍历方法,先序、中序、后序安徽新华电脑专修学院课堂教学教案(电脑应用课使用)课程名称数据结构教学对象新华软工教材数据结构(C语言)授课内容第六章树和二叉树课时2教学目的与要求了解树、森林的定义;掌握二叉树的定义、性质、存储结构;掌握二叉树的遍历、树和森林的存储,哈夫曼树的应用重点、难点重点:二叉树相关操作难点:二叉树的三种遍历课型电脑+理论教学方法投影、讨论、板书教学过程设计(包括讲授知识、演示内容及案例、提问及学生演示内容)任务三、二叉树的遍历复习上一次的内容,然后提问学生,接着从上一次内容进入今天新的课程,让课程内容的完整性一、遍历的递归算法先序遍历(TLR)的定义:若二叉树非空(1)访问根结点;(2)先序遍历左子树(3)先序遍历右子树;
本文标题:数据结构教案第六章
链接地址:https://www.777doc.com/doc-2429284 .html