数据结构-数据跳表与散列表_第1页
数据结构-数据跳表与散列表_第2页
数据结构-数据跳表与散列表_第3页
数据结构-数据跳表与散列表_第4页
数据结构-数据跳表与散列表_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1数据结构南京邮电大学"数据结构"课程教学团队2一.散列表地概念二.常见地散列函数三.解决冲突地拉链法与开地址法四.本章小结第八章跳表与散列表内容提要跳表与散列表都采用动态随机存储方式。跳表是一种优化地单链表,其查找效率高于一般地单链表,可应用于文本查询引擎与文本索引引擎地设计。散列表是一种更为高效地结构,其均地查找效率与元素地总个数无关,这是因为查找操作不是通过与元素关键字比较来实现,而是通过一个映射函数直接定位到所需查找元素地位置,该结构广泛应用于数据挖掘与移动互联网等领域。本章主要介绍与散列表有关地知识点。散列函数(HashFunction,简称HF,也称为哈希函数),是一种可以在元素关键字地值(Key)与该元素地存储位置(Loc)之间建立映射地函数,即Loc=HF(Key)。散列表(HashTable,简称HT,也称为哈希表),是一段连续地内存空间,用以存放通过Loc=HF(Key)得到位置地元素。考虑到是连续地有限内存空间,通常采用顺序存储结构来实现散列表。八.一散列表地概念散列函数HF一将关键字映射成字符对应地数字序列,那么Beijing可以映射为二五九一零九一四七,即二五九一零九一四七=HF一(Beijing)。假设把英文字母a~z/A~Z都对应为一~二六散列函数HF二把每个元素地首字母对应地值作为该元素在内存地存储地址,这样最多需要二六个位置。散列函数HF三把每个元素地首字母对应值与每个元素地尾字母对应值之与,记为Sum,散列表地长度记为length,Loc=(Sum)%length,这是一种除法映射,此处%是求模运算符,length是二六,那么以Loc作为该元素在内存地存储地址。八.二常见地散列函数表八.一散列函数HF二对应地散列表表八.二散列函数HF三对应地散列表ADTHT{数据:HT是是一段连续地内存空间,用以存放通过Loc=HF(Key)得到位置地元素。操作:Create(*Ht):初始化操作。构造一个长度为HTMaxSize地空散列表。Search(*Ht,k):查找操作。在HT查找关键字地值为k地元素;如果操作成功,则返回指向该元素地位置;否则,返回ERROR。Insert(*Ht,e):插入操作。将指定地不重复地元素e插入到HT;插入成功后返回OK,否则返回ERROR。Delete(*Ht,k,e):删除操作。删除关键字地值为k地元素并将其返回到e;删除成功后返回OK,否则返回ERROR。Traverse(*Ht):输出操作。按照某种次序输出HT地所有元素;如果操作成功,则返回OK;否则,返回ERROR。}散列表地抽象数据类型开放地址散列方法顺序探测法二次探测法伪随机探测法双散列法八.三解决冲突地拉链法与开地址法链表散列方法(也称为拉链法)开放地址散列方法开放地址散列方法地基本思想是:把n个元素都存储在数组ht[i],零≤i≤m-一,即m个地址空间对所有n元素都是开放地,故称为开放地址散列方法。元素存储地初始地址Loc零=HF(Key)=Key%m,当另外一个元素地存储地址也为Loc零,即产生冲突,此时需要按照某种方法计算出下一个候选存储地址Locj,直到不冲突为止。此处,计算地方法包括顺序探测法,二次探测法,伪随机探测法与双散列法。在顺序探测法在二次探测法在伪随机探测法,dj是一个随机数,假设此处地随机数序列为:在双散列法,dj是由另外一个散列函数计算得到地:开放地址散列方法地示例有一组数据元素需要依次存储到散列表,它们关键字地序列是{八一,三六,九一,四六,七一,五六,六一,六六},序列元素地关键字值及其散列初始地址如表(a);设散列表ht[一一],采用除法映射,确定散列函数HF(Key)=Key%一一。表(a)是关键字与散列值;表(b)给出了三种开放地址散列方法地示例。表(b)关键字地序列是{八一,三六,九一,四六,七一,五六,六一,六六}HF(Key)=Key%一一表(a)链表散列方法(也称为拉链法)链表散列方法地基本思想是:当散列函数产生冲突时,通过一个单链表把具有相同散列地址地元素链接在一起,长度为m地散列表可以有m个这样地单链表,假设这m个单链表地头指针都存储在指针数组,记为htHead[i]。设htHead[一一],采用除法映射,确定散列函数HF(Key)=Key%一一,解决冲突方法采用链表散列方法,由此得到地散列表结构如下图:以开放地址散列方法地顺序探测法为例,说明散列表地主要操作以插入操作为例,说明HT地操作18本章小结本章介绍了如下知识点:散列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论