拉链法(链地址法)
来源:互联网 发布:神创天下骑兵升级数据 编辑:程序博客网 时间:2024/05/16 14:14
当存储结构是链表时,多采用拉链法,用拉链法处理冲突的办法是:把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。
例如,按上面例9.4所给的关键字序列,用拉链法构造散列表如图9.14所示。
例如,按上面例9.4所给的关键字序列,用拉链法构造散列表如图9.14所示。
用拉链法处理冲突,虽然比开放定址法多占用一些存储空间用做链接指针,但它可以减少在插入和查找过程中同关键字平均比较次数(平均查找长度),这是因为,在拉链法中待比较的结点都是同义词结点,而在开放定址法中,待比较的结点不仅包含有同义词结点,而且包含有非同义词结点,往往非同义词结点比同义词结点还要多。
如前面介绍的例9.4中,用线性探测法构造散列表的过程,我们知道,对前5个关键字的查找,每一个仅需要比较一次,对关键字49和24的查找,则需要比较2次,对关键字38的查找则需要比较4次,而对43的查找则需要比较3次。因此,对用线性探测法构造的散列表的平均查找长度为:
ASL=(1×5+2×2+3×1+4×1)/9 ≈1.78
而用拉链法构造的散列表上查找成功的平均查找长度为:
ASL=(1×5+2×3+3×1)/9≈1.55
显然,开放定址法处理冲突的的平均查找长度要高于拉链法处理冲突的平均查找长度。但它们都比前面介绍的其它查找方法的平均查找长度要短。
0 0
- 拉链法(链地址法)
- 拉链法
- 哈希冲突详解、拉链法、开地址法
- 哈希表(闭散列、拉链法--哈希桶)
- 哈希表(闭散列、拉链法--哈希桶)
- 哈希桶的实现(拉链法)
- Hash表(拉链法)
- 拉链法实现哈希表
- 哈斯 拉链法 C
- 哈希表 拉链法
- 散列表-拉链法
- Hash开散列 拉链法
- 散列表-拉链法
- 哈希表之拉链法
- php hash 拉链法
- 哈希表查找--拉链法
- 哈希表查找 — 拉链法
- 深入哈希表(三)--拉链法(哈希桶)实现哈希表
- Git新手上路,让你快速掌握Git的基本使用
- Creating a View Class 创建自定义视图
- 空格和tab键的vi 转换
- bzoj 2118: 墨墨的等式
- gdb调试应用程序
- 拉链法(链地址法)
- LVS DR/NAT/FULLNAT/TUNNEL模式介绍
- App.Config操作
- iOS 设置视图的圆角效果
- 数轴上一个点到其他点距离之和最小问题
- Hibernate二级缓存 的配置详解(ssh)
- EL表达式 自定义方法 tld 说明
- 类,对象的初始化
- java实现发送邮件