1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04级第9章B

电信01-04及0310班座位表 第9章 查找 9.3 动态查找表 讨论1:二叉排序树的查找插入算法如何实现? 讨论2:二叉排序树的删除操作如何实现? 难点:*p有两棵子树时,如何进行删除操作? 例:请从下面的二叉排序树中删除结点P。 三、二叉排序树的查找分析 1)LL平衡旋转: 3)LR平衡旋转: 例:请将下面序列构成一棵平衡二叉排序树: ( 13,24,37,90,53) 9.4 哈希查找表 一、哈希表的概念 例2 : Hash查找法 冲突现象举例: 在哈希查找方法中,冲突是不可能避免的,只能尽可能减少。 二、哈希函数的构造方法 1、直接定址法 2、除留余数法 4、数字分析法 5、平方取中法 7、随机数法 三、冲突处理方法 1、开放定址法(开地址法) 例: 讨论: 2) 二次探测法 2、链地址法(拉链法) 3、再哈希法(双哈希函数法) 四、哈希表的查找及分析 讨论: 仍举上例,改用二次探测法处理冲突,建表如下: 0 1 2 3 4 5 6 7 8 9 10 8 29 7 16 92 47 3 22 11 △ ▲ △ △ 注:只有3这个关键码的冲突处理与上例不同, Hash(3)=3,哈希地址上冲突,由 H1=(Hash(3)+12) mod 11=4,仍然冲突; H2=(Hash(3)-12) mod 11=2,找到空的哈希地址,存入。 Hi=(Hash(key)±di) mod m 其中:Hash(key)为哈希函数 m为哈希表长度,m要求是某个4k+3的质数; di为增量序列 12,-12,22,-22,…,q2 3) 若di=伪随机序列,就称为伪随机探测法 基本思想:将具有相同哈希地址的记录链成一个单链表,m个哈希地址就设m个单链表,然后用一个数组将m个单链表的表头指针存储起来,形成一个动态的结构。 设{ 47, 7, 29, 11, 16, 92, 22, 8, 3, 50, 37, 89 }的哈希函数为: Hash(key)=key mod 11, 用拉链法处理冲突,则建表如右图所示。 例: 0 1 2 3 4 5 6 7 8 9 10 22 11 89 3 47 37 92 29 7 16 50 8 10 ? ? ? ? ? ? ? ? ? ? ? 有冲突的元素可以插在表尾,也可以插在表头。 Hi=RHi(key) i=1, 2, …,k RHi均是不同的哈希函数,当产生冲突时就计算另一个哈希函数,直到冲突不再发生。 优点:不易产生聚集; 缺点:增加了计算时间。 4. 建立一个公共溢出区 思路:除设立哈希基本表外,另设立一个溢出向量表。 所有关键字和基本表中关键字为同义词的记录,不管它们由哈希函数得到的地址是什么,一旦发生冲突,都填入溢出表。 * 0310 信4 信3 信2 信1 旁听席(最后2排) 0310 信4 信3 信2 信1 0310 信4 信3 信2 信1 0310 信4 信3 信2 信1 14-18列 11-13列 8-10列 5-7列 1-4列 讲 台 第7章 作业 7.1 7.3 第9章? 作业 9.3 9.8 9.31 9.33 下周二交 实验报告要求:将报告、源码、exe文件和个人信息打包上传到“作业与实验”栏目。 考试时间: 13周五晚上 特别提示 《图的应用》擂台赛定于本周四晚上举行,各参赛组讲解切勿超过20分钟。 (AOV的2个组先讲,AOE的3个组后讲) 评比方式:由非参赛班全体投票。 9.1 基本概念 9.2 静态查找表 9.3 动态查找表 9.4 哈希查找表 教材第8、11和12章省略,因《操作系统》课程会涉及。 特点: 一、二叉排序树的定义 二、二叉排序树的插入与删除 三、二叉排序树的查找分析 四、平衡二叉树 表结构在查找过程中动态生成。 要求: 对于给定值key, 若表中存在其关键字等于key的记录,则查找成功返回; 否则插入关键字等于key 的记录。 典型的动态表———二叉排序树 思路: 查找不成功,生成一个新结点s,插入到二叉排序树中;查找成功则返回。 SearchBST (K, t) { //K为待查关键字,t为根结点指针 p=t; //p为查找过程中进行扫描的指针 while(p!=NULL) { case { K= p-data:

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档