数据结构课件:2-检索-动态树2012.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构课件:2-检索-动态树2012.ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课件 检索 动态 2012
- 资源描述:
-
1、1检索检索数据结构与算法2BSTBST3(1)若它的左子树不空,则左子树上 所有结点的值均小于根结点的值;二叉排序树 二叉排序树或者是一棵空树;或者是具有如下特性的二叉树:(3)它的左、右子树也都分别是二叉 排序树。(2)若它的右子树不空,则右子树上 所有结点的值均大于根结点的值;4二叉排序树的查找算法1)若给定值)若给定值等于根结点的关键字,则根结点的关键字,则查找成功;2)若给定值)若给定值小于根结点的关键字,则根结点的关键字,则继续在左子树上进行查找;3)若给定值)若给定值大于根结点的关键字,则根结点的关键字,则继续在右子树上进行查找。否则,若二叉排序树为空为空,则查找不成功查找不成功;
2、550308020908540358832例如例如:二叉排序树二叉排序树查找关键字查找关键字= 50 ,505035 ,503040355090 ,50809095 ,6从上述查找过程可见,从上述查找过程可见,在查找过程中,生成了一条查找路径查找路径: 从根结点出发,沿着左分支或右分支从根结点出发,沿着左分支或右分支逐层向下直至关键字等于给定值的结点逐层向下直至关键字等于给定值的结点;或者 从根结点出发,沿着左分支或右分支从根结点出发,沿着左分支或右分支逐层向下直至指针指向空树为止。逐层向下直至指针指向空树为止。 查找成功查找成功 查找不成功查找不成功7 根据动态查找表的定义根据动态查找表的定
3、义,“插入”操作在查找不成功时才进行;二叉排序树的插入算法 若二叉排序树为若二叉排序树为空树,则新插入的,则新插入的结点为结点为新的根结点;否则,新插入;否则,新插入的结点必为一个的结点必为一个新的叶子结点,其,其插入位置由由查找过程得到查找过程得到。8 (1)被删除的结点)被删除的结点是叶子是叶子; (2)被删除的结点)被删除的结点只有左子树只有左子树或者或者只有只有右子树右子树; (3)被删除的结点)被删除的结点既有左子树,也有右既有左子树,也有右子树子树。二叉排序树的删除算法可分三种情况讨论: 和插入相反,删除在查找成功查找成功之后进行,并且要求在删除二叉排序树上某个结点之后,仍仍然保持
4、二叉排序树的特性然保持二叉排序树的特性。9(1)被删除的结点是叶子结点叶子结点其双亲结点中相应指针域的值改为其双亲结点中相应指针域的值改为“空空”(2)被删除的结点只有左子树只有左子树或者只有右只有右子树子树 其双亲结点的相应指针域的值改为其双亲结点的相应指针域的值改为 “指向被删除结点的左子树或右子树指向被删除结点的左子树或右子树”。(3)被删除的结点既有左子树,也有右子树既有左子树,也有右子树以其前驱替代之,然后再删除该前驱结点以其前驱替代之,然后再删除该前驱结点10BST查找性能的分析 对于每一棵特定的二叉排序树,均可按照平均查找长度的定义来求它的 ASL 值,显然,由值相同的 n 个关
5、键字,构造所得的不同形态的各棵二叉排序树的平均查找长 度的值不同,甚至可能差别很大。11由关键字序列 3,1,2,5,4构造而得的二叉排序树,由关键字序列 1,2,3,4,5构造而得的二叉排序树,例如:例如:2134535412ASL =(1+2+3+4+5)/ 5 = 3ASL =(1+2+3+2+3)/ 5 = 2.212 下面讨论平均情况下面讨论平均情况: 不失一般性,假设长度为 n 的序列中有 k 个关键字小于小于第一个关键字,则必有 n-k-1 个关键字大于大于第一个关键字,由它构造的二叉排序树:n-k-1k的平均查找长度是 n 和 k 的函数P(n, k) ( 0 k n-1 )。
6、13 假设 n 个关键字可能出现的 n! 种排列的可能性相同,则含 n 个关键字的二叉排序树的平均查找长度:10),(1)(nkknPnnPASLniiniiiCnCpknP111),(在等概率查找等概率查找的情况下,14RiLirootniiCCCnCnknP11),(1)1)1()(1()1)(11knPknkPkn)1()1()(11knPknkPkn15由此可类似于解差分方程,此递归方程有解:CnnnnPlog12)(10) 1() 1()(111)(nkknPknkPknnnP112)(21nkkPkn16AVLAVL17平衡二叉树(AVL) AVL树定义它或者是一棵空二叉树,或者是
7、具有下列特性的二叉树:它的左子树和右子树的深度之差的绝对值不大于1,且左、右子树也是平衡二叉树 结点的平衡因子二叉树中某一结点的左子树的深度与右子树的深度之差18例:例:ABDCFEG1+100011平衡二叉树ABDCFEG1+2+100221HI0不平衡的二叉树可以证明AVL树的深度和log n 同数量级平衡二叉树(AVL)19BST的平衡旋转图例ABARBRBLBAARBRBLABBRBLALBABRBLALABARCRBLCCLCBARCRBLACLABALCRBRCCLCABRCRALBCL20举例:构建AVL树 输入关键码序列(输入关键码序列(13,24,37,90,53)(a)13
展开阅读全文