当前课程知识点:数据结构(下) > 第九章 词典 > (d1)散列:排解冲突(1) > 09D1-5 懒惰删除
以线性试探为代表的开放定址策略在使用时
若要支持词条的删除则需格外的小心
我们来就此做一探讨
按照这种策略 先后插入彼此冲突的一组词条
都将存放在同一个查找序列中
而更确切的讲
它们应该按照逻辑次序构成整个查找链的一个前缀
其中不得有任何的空桶缝隙
因此词条的删除操作需要做额外的一些处理
反之 如果直接将词条删除
那么被删除的词条所留下的空桶
就有可能将查找链切断
从而导致在此之后的词条丢失掉
尽管它们的确存在于散列表中 却如何也访问不到
针对这一问题 一种简明的方法就是所谓的懒惰删除
lazy removal
也就是说 如果在某个桶中 此前存有一个词条
那么在这个词条被删除之后
我们并不是简单的将这个桶清空
而是为其做上一个特殊的标记 比如说R
在这样一个桶所属的每一条查找链中
这类桶单元将根据具体情况 可能扮演两种角色
如果是针对某一特定词条的查找
那么在抵达这个桶时
根据这个标志 我们就知道不应该在此中断
而应越过它 继续查找下去
反过来如果我们是为了插入新的词条而寻找一个空桶
那么在首次抵达带有这样一个标志的桶之后
就可以将它等效的视作是一个空桶
并将待插入的新词条径直的插入其中
应该说针对开放定址策略
懒惰删除 不仅是不得已而为之的方法
也甚至可以说是针对这种情况的最优方法
因为毕竟在开放定址策略中
每一个桶单元都同时属于多个查找链
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)概述
--07A-1 纵览
--07A-5 接口
-(a)概述--作业
-(b1)BST:查找
-第七章 二叉搜索树--(b1)BST:查找
-(b2)BST:插入
-(b2)BST:插入--作业
-(b3)BST:删除
-第七章 二叉搜索树--(b3)BST:删除
-(c)平衡与等价
-(c)平衡与等价--作业
-(d1)AVL树:重平衡
-第七章 二叉搜索树--(d1)AVL树:重平衡
-(d2)AVL树:插入
-(d2)AVL树:插入--作业
-(d3)AVL树:删除
-(d3)AVL树:删除--作业
-(d4)AVL树:(3+4)-重构
-(d4)AVL树:(3+4)-重构--作业
-本章测验
--章节测验
-(a1)伸展树:逐层伸展
--习题
-(a2)伸展树:双层伸展
--习题
-(a3)伸展树:算法实现
--习题
-(b1)B-树:动机
--习题
-(b2)B-树:结构
--习题
-(b3)B-树:查找
--习题
-(b4)B-树: 插入
--习题
-(b5)B-树: 删除
--习题
-(xa1)红黑树:动机
--习题
-(xa2)红黑树:结构
--习题
-(xa3)红黑树:插入
--习题
-(xa4)红黑树:删除
-本章测验
--习题
-(b)散列:原理
--09B-3 数组
--09B-4 原理
--09B-5 散列
--09B-6 冲突
--习题
-(c)散列:散列函数
--习题
-(d1)散列:排解冲突(1)
--习题
-(d2)散列:排解冲突(2)
--习题
-(e)桶/计数排序
--习题
-本章测验
--本章测试
-(a1)需求与动机
--习题
-(a2)基本实现
--习题
-(b1)完全二叉堆:结构
--习题
-(b2)完全二叉堆:插入与上滤
--习题
-(b3)完全二叉堆:删除与下滤
--习题
-(b4)完全二叉堆:批量建堆
--习题
-(c)堆排序
--习题
-(xa1)左式堆:结构
--习题
-(xa2)左式堆:合并
--习题
-(xa3)左式堆:插入与删除
-本章测验
--本章测试
-(a)ADT
--习题
-(b1)串匹配
--习题
-(b2)蛮力匹配
--习题
-(c1)KMP算法:从记忆力到预知力
--习题
-(c2)KMP算法:查询表
--习题
-(c3)KMP算法:理解next[]表
--习题
-(c4)KMP算法:构造next[]表
--习题
-(c5)KMP算法:分摊分析
--习题
-(c6)KMP算法:再改进
-(d1)BM_BC算法:以终为始
-(d2)BM_BC算法:坏字符
-(d3)BM_BC算法:构造bc[]
-(d4)BM_BC算法:性能分析
-(e1)BM_GS算法:好后缀
-(e2)BM_GS算法:构造gs表
-(e3)BM_GS算法:综合性能
-(f1)Karp-Rabin算法:串即是数
-(f2)Karp-Rabin算法:散列
-本章测验
--本章测试
-(a1)快速排序:算法A
-- 12a1-5: 实例
--习题
-(a2)快速排序:性能分析
--习题
-(a4)快速排序:变种
-(b1)选取:众数
-(b3)选取:通用算法
--习题
-(c1) 希尔排序:Shell序列
--习题
-(c2)希尔排序:逆序对
-本章测验
--本章测试