树(三) 2012初赛知识点梳理.

Slides:



Advertisements
Similar presentations
练一练: 在数轴上画出表示下列各数的点, 并指出这些点相互间的关系: -6 , 6 , -3 , 3 , -1.5, 1.5.
Advertisements

一、算法的基本概念 二、数据结构 三、栈和队列 四、排序方法 五、二叉树
二叉树在树结构的应用中起着非常重要的作用,因为对二叉树的许多操作算法简单,而任何树都可以与二叉树 相互转换,这样就解决了树的
主讲:计算机工程学院 李兰 答疑地点:主教学楼B区213
Visual FoxPro 程序设计 主讲教师:朱扬清 所在单位:电子与信息工程学院 Mobile Phone:
小学生游戏.
数据结构学习考 复习课(2) 主要内容: 第三部分:树、二叉树、森林.
数据结构作业及答案 (C语言版).
第6章 树和二叉树 树型结构是一类非常重要的非线性结构。直观地,树型结构是以分支关系定义的层次结构。
助教:李伟力 电子科学与技术系 数据结构第二次习题课 助教:李伟力 电子科学与技术系
实用数据结构基础 第6章 树.
第6章 树 数据结构(C++描述).
机械CAD中常用的数据结构.
数据结构与算法 Data Structure Algorithms
第六章 二叉树和树 6.1 二叉树 6.2 二叉树的基本操作与存储实现 6.3 二叉树的遍历 6.4 线索二叉树 6.5 树和森林
第六章 树和森林 1、树、森林的概念 2、二叉树及其表示 3、遍历二叉树和线索二叉树 4、堆 5、树和森林 6、二叉树的计数 7、霍夫曼树
第6章 树与二叉树.
树.
初中数学八年级下册 (苏科版) 10.4 探索三角形 相似的条件(2).
Copyright © 《离散数学》精品课程小组
树和二叉树(四).
第五章 树及二叉树 1.树的定义和术语 2.二叉树:定义、性质、存储 3.二叉树的遍历 4. 二叉树遍历的迭代器类 *5. 中序穿线树 6. 最优二叉树及其应用 7. 树和森林.
第6章 树和二叉树 6.1 树的有关概念 6.2 二叉树 6.3 二叉树的遍历 6.4 遍历的应用 6.5 线索二叉树 6.6 树和森林
第六章 树和二叉树.
赵海燕 软件研究所 14 Apr 第5章 树与二叉树 之三 赵海燕 软件研究所 14 Apr
第五章 树与二叉树 树和森林的概念 二叉树 二叉树遍历 线索化二叉树 树与森林 堆 Huffman树.
树和二叉树(三).
Ch.6 树
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
二叉树 二叉树 遍历 递归.
第六章 树与二叉树 6.1 树的定义和基本术语 6.2 二叉树 6.3 遍历二叉树和线索二叉树 6.4 树和森林
用函数观点看方程(组)与不等式 14.3 第 1 课时 一次函数与一元一次方程.
湖北大学知行学院 教师:涂晓帆 Sunday, December 09, 2018
第六章 树和二叉树.
第8章 树和二叉树 树 二叉树 二叉树设计 二叉树遍历 线索二叉树 哈夫曼树 等价问题 树与二叉树的转换 树的遍历 主要知识点.
第5章 树和二叉树 北京师范大学 教育技术学院 杨开城.
数据结构 Data Structure 主讲人:王国军,郑瑾 CSU 中南大学信息院计科系
第5章 树和二叉树 5.1树 5.2二叉树 5.3二叉树的遍历 5.4线索二叉树 5.5树、森林与二叉树的转换 5.6哈夫曼树.
数据结构 Data Structure 主讲人:王国军,郑瑾 CSU 中南大学信息院计科系
第11讲 树和二叉树(二).
第六章 树 2019/1/14.
Ch.9 查找 §9.1 基本概念 查找和排序是两个重要的运算
第六章 树与森林 树和森林的概念 二叉树 (Binary Tree) 二叉树的表示
第五章 树 5.1 树的定义 树是一类重要的非线性数据结构,是以分支关系定义的层次结构 定义
数据结构概论 第6章 树和二叉树 董黎刚 浙江工商大学信电学院.
Ch.9 查找 查找和排序是两个重要的运算 §9.1 基本概念
第5到第6章的勘误表 注意:这个 c 应改为 d 1、第 92 页 倒数第 7 行:
Tree & Binary Tree.
第一二节 树及二叉树.
无向树和根树.
数列.
实数与向量的积.
线段的有关计算.
第四章 一次函数 4. 一次函数的应用(第1课时).
⑴当∠MBN绕点B旋转到AE=CF时(如图1),比较AE+CF与EF的大小关系,并证明你的结论。
3.3 垂径定理 第2课时 垂径定理的逆定理.
第六章 树和二叉树.
§6.7 子空间的直和 一、直和的定义 二、直和的判定 三、多个子空间的直和.
第六章 二叉树和树 6.1二叉树 6.2二叉树遍历 6.3树和森林 6.4树的应用.
第5节 树 前两章学习的栈和队列属于线性结构。在这种结构中,数据元素的逻辑位置之间呈线性关系,每一个数据元素通常只有一个前件(除第一个元素外)和一个后件(除最后一个元素外)。在实际生活中,可以用线性结构描述数据元素之间逻辑关系的问题是很广泛的,但也有很多问题不能依靠线性结构来解决,例如家谱、行政组织机构等都是非线性的数据结构。其中树就是一种非线性的数据结构。
辅助线巧添加 八年级数学专项特训: ——倍长中线法.
第4课时 绝对值.
第七、八次实验要求.
树和二叉树(四).
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
第七章 搜索结构 东南大学计算机学院 方效林 本课件借鉴了清华大学殷人昆老师 和哈尔滨工业大学张岩老师的课件.
2019年9月11日星期三 离散  数学 计算机学院 冯伟森 2019年9月11日星期三.
本节内容 1. 平衡二叉树的定义 2.平衡化旋转 3.平衡二叉排序树的插入操作 昆山爱达人信息技术有限公司
最小生成树 最优二叉树.
第五章 树和二叉树.
Presentation transcript:

树(三) 2012初赛知识点梳理

给出一棵二叉树的 中序遍历:DBGEACHFI 后序遍历:DGEBHIFCA 画出此二叉树。

给出一棵二叉树的中序遍历:DBGEACHFI与后序遍历:DGEBHIFCA,画出此二叉树。 【问题分析】   后序遍历中最后访问的是根结点,所以后序遍历DGEBHIFCA序列中A是根结点;根据中序遍历的算法,先中序遍历左子树,然后再访问根结点,最后再中序遍历右子树,所以中序遍历DBGEACHFI序列中,根结点A的两侧分别是左子树和右子树:DBGE、CHFI。

由中根序列和后根序列来确定二叉树的结构,从而判断先根遍历序列及其它。 例1:(NOIP 2001提高组试题) 已知一棵二叉树的结点名为大写英文字母,其中序与后序遍历的顺序分别为:C B G E A F H D I J与C G E B H F JI D A则该二叉树的先序遍历的顺序为 解析:已知中序序列为C B G E A F H D I (1) 后序序列为C G EBH F JI D A。(2) 由(2)知:根结点为A 由(1)知:A的左子树中序序列为C B G E (3) A的右子树中序序列为F H D I J(4) 由(2)知:A的左子树后序序列为C G E B(5) A的右子树后序序列为H F J I D(6) 由(5)(6)知:A的左子树根结点为B,A的右子树根结点为D 由(3)(4)知:B的左子树为C,右子树中序序列为G E D的左子树中序序列为F H,右子树中序序列为I J 由(5)(6)知:B的右子树后序序列为G E,即根结点为E D的左子树后序序列为H F,即根结点为F D的右子树后序序列为JI,即根结点为I 综上可推出二叉树的结构如图所示 故该二叉树的先序遍历序列为:A B C E G D F H I J

由前序序列和中序序列来确定一棵二叉树,从而判断后序序列及其它 例2:(NOIP 2004提高组试题)二叉树T 已知其前序遍历序列为1 2 4 3 5 7 6 中序遍历序列为4 2 1 5 7 3 6 则其后序遍历序列为( )。 A.4 2 5 7 6 3 1 B.4 2 7 5 6 3 1 C.4 2 7 5 3 6 1 D.4 7 2 3 5 6 1 E.4 5 2 6 3 7 l

由前序序列和中序序列来确定一棵二叉树,从而判断后序序列及其它 例2:(NOIP 2004提高组试题)二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,则其后序遍历序列为( )。 A.4 2 5 7 6 3 1 B.4 2 7 5 6 3 1 C.4 2 7 5 3 6 1 D.4 7 2 3 5 6 1 E.4 5 2 6 3 7 l 解析:已知前序遍历序列为1 2 4 3 5 7 6 (1) 中序遍历序列为4 2 l 5 7 3 6 (2) 由(1)知:根结点为1 由(2)知:1的左子树中序序列为4 2 (3) 右子树中序序列为5 7 3 6 (4) 由(1)知1的左子树先序序列为2 4 (5) 1的右子树先序序列为3 5 7 6 (6) 由(3)(5)知:1的左子树根结点为2,2的左子树为4 由(4)(6)知:1的右子树根结点为3 由(4)知:3的左子树中序序列为5 7 (7) 3的右子树为6 由(6)(7)知:3的左子树根结点为5,且5的右子树为7 综上对应的一棵二叉树的结构如图所示: 故其后序遍历序列为:4 2 7 5 6 3 1 从而答案选B

由先根序列和后根序列来推断二叉树的结构,从而判断中根遍历序列以及其他 例3:(NOIP 2007提高组第14题)已知7个结点的二叉树的先根遍历是1 2 4 5 6 3 7 f数字为结点的编号,以下同),后根遍历是4 6 5 27 3 1,则该二叉树的可能的中根遍历是( )。 A.4 2 6 5 1 7 3 B.4 2 5 6 1 3 7 C.4 2 3 1 5 4 7 D.4 2 5 6 1 7 3

由先根序列和后根序列来推断二叉树的结构,从而判断中根遍历序列以及其他 例3:(NOIP 2007提高组第14题)已知7个结点的二叉树的先根遍历是1 2 4 5 6 3 7 f数字为结点的编号,以下同),后根遍历是4 6 5 27 3 1,则该二叉树的可能的中根遍历是( )。 A.4 2 6 5 1 7 3 B.4 2 5 6 1 3 7 C.4 2 3 1 5 4 7 D.4 2 5 6 1 7 3 解析:先根遍历序列是1 2 4 5 6 3 7 (1) 后根遍历序列是4 6 5 2 7 3 1(2) 由(1)和(2)知:根结点为l,1的左子树根结点是2,右子树根结点是3,结点4是结点2的左子树,可以判断结点5是结点2的右子树的根结点,但结点6可能是结点5的左子树,也可能是它的右子树,同样结点7可能是结点3的左子树,也可能是它的右子树。对应的二叉树的结构可能是如下四种: 图①的中序遍历序列是:4 2 6 5 1 7 3 图②的中序遍历序列是:4 2 5 6 1 7 3 图③的中序遍历序列是:4 2 6 5 1 3 7 图④的中序遍历序列是:4 2 5 6 1 3 7 故此题的答案应选A B D

通过二叉树的宽度优先遍历和树中结点的最大深度及结点之间的关系来判断树的结构,从而解决有关问题。 例5:(NOIP 2005提高组试题)二叉树T的宽度优先遍历序列为A B C D E F G H I,已知A是C的父结点,D是G的父结点,F是I的父结点,树中所有结点的最大深度为3(根结点深度设为0),可知E的父结点可能是 ( )。 A B. B C. C D. D E. F

通过二叉树的宽度优先遍历和树中结点的最大深度及结点之间的关系来判断树的结构,从而解决有关问题。 例5:(NOIP 2005提高组试题)二叉树T的宽度优先遍历序列为A B C D E F G H I,已知A是C的父结点,D是G的父结点,F是I的父结点,树中所有结点的最大深度为3(根结点深度设为0),可知E的父结点可能是 ( )。 A B. B C. C D. D E. F 解析:二叉树的宽度优先遍历就是按层遍历,从根结点自上而下,自左向右访问树中的每一个结点。由题目可知A是根结点,又知A是C的父结点,可以推知B是A的左子树的根结点,C是A的右子树的根结点。又知D是G的父结点,F是I的父结点,树中所有结点的最大深度为3,故E结点可能是B结点的右子树,也可能是G结点的左子树。二叉树的部分结构图为下图①②所示: 故E的父结点可能是B,也可能是C。

特殊二叉树 二叉排序树 又称二叉查找树,它可以是一棵空树或者具有如下特性的非空树: 特殊二叉树 二叉排序树 (1)二叉排序树定义:(假设从小到大排列) 又称二叉查找树,它可以是一棵空树或者具有如下特性的非空树: 若左子树不为空,则左子树上所有结点的值或关键字均小于根结点的值或关键字; 若右子树不为空,则右子树上所有结点的值或关键字均大于根结点的值或关键字; 左、右子树本身又各是一棵二叉树。

这种二叉排序树具有左小右大的特点。根据需要也可以构造左大右小的二叉排序树。 10 3 18 2 8 15 19 6 9 二叉排序树 特点: 对二叉排序树进行中序遍历,可得到一个由小到大的序例。 例如对图6.18的二叉排序树进行中根遍历: 则得到序列:2,3,6,8,9,10,15,18,19。

15 3 12 4 7 8 12 24 11

哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。可以证明哈夫曼树的WPL是最小的。 给定4个叶子结点a,b,c和d,分别带权7,5,2和4。构造如下图所示的三棵二叉树(还有许多棵),它们的带权路径长度分别为:   (a)WPL=7*2+5*2+2*2+4*2=36   (b)WPL=7*3+5*3+2*1+4*2=46   (c)WPL=7*1+5*2+2*3+4*3=35   其中(c)树的WPL最小,可以验证,它就是哈夫曼树。

给定权值 {7,5,2,4},构造哈夫曼树 7 5 c d (b) a b c d (a) a c d b (d) b 7 c d (c) 6 7 5 c d (b) a b c d 7 5 2 4 (a) a 7 11 c d b 5 6 2 4 (d) 18 11 b 5 7 c d (c) 6

5,29,7,8,14,23,3,11

它的带权的路径长度为:WPL=(23+29)*2+(11+14)*3+(3+5+7+8)*4=271

补充:哈夫曼树的应用 用于最佳判断过程 在考查课记分时往往把百分制转换成优( x>=90 )、良 (80<x<90) 、中 (70<=x80) 、及格 (60<=x<70) 、不及格 (x<60) 五个等级。若不考虑学生考试分数的分布概率,程序判定过程很容易写成图 6.23(a) 所示的方法。我们知道,一般来讲学生考分大多分布在 70 至 80 分之间,从图 6.23(a) 可看出这种情的 x 值要比较 2 至 3 次才能确定等级。而学生中考试不及格的人数很少, x 值比较一次即可定等级。能否使出现次数多的在 70 至 80 分之间的 x 值比较次数减少些,而使很少出现的低于 60 分的 x 值比较次数多一些,以便提高程序的运行效率呢?假设学生成绩对于不及格、及格、中等、良好和优秀的分布概率分别为 5 %, 15 %, 40 %, 30 %, 10 %,以它们做为叶子的权值来构造哈夫曼树,如图 6.23(b) 所示。此时带权路径长最短,其值为 205 %。它可以使大部分的分数值经过较少的比较次数得到相应的等级。但是,事务往往不是绝对的,此时每个判断柜内的条件较为复杂,比较两次,反而降低运行效率。所以我们采用折衷作法,调整后得图 6.23(c) 判定树。它更加切合实际。

(2) 用于通信编码 在通信及数据传输中多采用二进制编码。 例如:假设需传送的电文为: “A B A C C D A A” (1)令:A:00 B:01 C:10 D:11 则:00 01 00 10 10 11 00 00 网络通信带宽越来越大,仍需进行数据压缩,即:传送电文时,总希望长度越来越短. (2)不等长的编码: 令:A:0 B:00 则:0 00 0 1 1 01 0 0 C:1 特点:接受方很难接受. D:01

(3)前缀编码: 长短不等的编码,但任一个字符的编码都不是另一个字符的编码的前缀. 如何得到使电文总长最短的二进制前缀编码呢? 当成叶子的权值构造哈夫曼树. 为什么?频率越高,编码越短,则总长越短. (1)构造哈夫曼树: (2)令: 所有的左分支为0 所有的右分支为1