数据结构第6章树的查找和树的应用课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构第6章树的查找和树的应用课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 查找 应用 课件
- 资源描述:
-
1、主要教学目标:主要教学目标:了解查找树,掌握堆和堆排序的过程和算法;掌握平衡树的构造原理;掌握建立哈夫曼树和哈夫曼编码的方法。教学方法及教学手段:教学方法及教学手段:理论讲授与上机实践相结合教学重点及难点:教学重点及难点:建堆,堆排序,构造平衡树,构造哈夫曼树第六章 树的查找和树的应用6.1 查找树定义v查找树,或是一棵空树,或具有下列性质的二叉树:l若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值l若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值l它的左、右子树也分别为二叉排序树二叉排序树的插入l插入原则:若二叉排序树为空,则插入结点应为新的根结点;否则,继续在
2、其左、右子树上查找,直至某个叶子结点的左子树或右子树为空为止,则插入结点应为该叶子结点的左孩子或右孩子l二叉排序树生成:从空树出发,经过一系列的查找、插入操作之后,可生成一棵二叉排序树例 10,18,3,8,12,2,7,310101810183101838101838 12101838 122101838 1227101838 12273中序遍历二叉排序树可得到一个关键字的有序序列v查找树的删除要删除查找树中的p结点,分三种情况:lp为叶子结点,只需修改p双亲f的指针f-lchild=NULL f-rchild=NULLlp只有左子树或右子树up只有左子树,用p的左孩子代替p (1)(2)u
3、p只有右子树,用p的右孩子代替p (3)(4)lp左、右子树均非空u沿p左子树的根C的右子树分支找到S,S的右子树为空,将S的左子树成为S的双亲Q的右子树,用S取代p (5)u若C无右子树,用C取代p (6)SQPLP中序遍历:Q S PL PSQPL中序遍历:Q S PL(2)SPPLQ中序遍历:PL P S QSPLQ中序遍历:PL S Q(1)中序遍历:P PR S QSPRQ中序遍历:PR S Q(3)SPPRQ中序遍历:Q S P PRSQPR中序遍历:Q S PR(4)SQPRPFPCPRCLQQLSSL中序遍历:CL C QL Q SL S P PR FFSCPRCLQQLSL中
4、序遍历:CL C QL Q SL S PR F(5)FPCPRCL中序遍历:CL C P PR FFCPRCL中序遍历:CL C PR F(6)例805012060110150557053删除508060120110150557053删除60805512011015053701042581354删除1084255134删除584254131042581354删除1084255134删除5842541330 78 53 6 18 10 11 20 4947 15 34 56 90 61 5 20 87 416.2 满树、拟满树和丰满树定义v满树:每层结点数达到最大个数v拟满树:深度为k的二叉树,
5、前k-1层是满树,第k层从左到右依次排列v丰满树:深度为k的二叉树,前k-1层是满树,第k层任意排列6.3 堆和堆排序v堆的定义:n个元素的序列(k1,k2,kn),当且仅当满足下列关系时,称之为堆或(i=1,2,.n/2)kik2ikik2i+1kik2ikik2i+1例 (96,83,27,38,11,9)例 (13,38,27,50,76,65,49,97)962791138831327384965765097可将堆序列看成拟满树,则堆顶元素(拟满树的根)必为序列中n个元素的最小值或最大值v堆排序:将无序序列建成一个堆,得到关键字最小(或最大)的记录;输出堆顶的最小(大)值后,使剩余的n
6、-1个元素重又建成一个堆,则可得到n个元素的次小值;重复执行,得到一个有序序列,这个过程叫v堆排序需解决的两个问题:l如何由一个无序序列建成一个堆?l如何在输出堆顶元素之后,调整剩余元素,使之成为一个新的堆?v第二个问题解决方法筛选l方法:输出堆顶元素之后,以堆中最后一个元素替代之;然后将根结点值与左、右子树的根结点值进行比较,并与其中小者进行交换;重复上述操作,直至叶子结点,将得到新的堆,称这个从堆顶至叶子的调整过程为“筛选”例13273849657650979727384965765013输出:132749389765765013输出:139749382765765013输出:13 273
7、849502765769713输出:13 276549502738769713输出:13 27 384965502738769713输出:13 27 387665502738499713输出:13 27 38 495065762738499713输出:13 27 38 499765762738495013输出:13 27 38 49 506597762738495013输出:13 27 38 49 509765762738495013输出:13 27 38 49 50 657665972738495013输出:13 27 38 49 50 659765762738495013输出:13 27
8、38 49 50 65 769765762738495013输出:13 27 38 49 50 65 76 97v第一个问题解决方法l方法:构造一棵拟满树,从最后一个根开始调整成堆结构,直至到根例 含8个元素的无序序列(49,38,65,97,76,13,27,50)496538271376975049653827137650974913382765765097491338276576509713273849657650976.4 平衡树定义v树的高度 设T是一棵二叉树,h(T)表示树T的高度.则 h(T)=maxh(Tl,Tr)+1v平衡度(k)=h(Tkr)-h(Tkl)v平衡树 二叉树中
展开阅读全文