算法导论11.1-4
来源:互联网 发布:英国大学排名知乎 编辑:程序博客网 时间:2024/05/17 05:07
Q:我们希望通过利用在一个非常大的数组上直接寻址的方式来实现字典。开始时,该数组中可能包含废料,但要对整个数组进行初始化是不实际的,因为该组的规模太大。请给出在大数组上实现直接寻址字典的方案。每个存储的对象占用O(1)空间;操作SEARCH、INSERT和DELETE的时间为O(1);对数据结构初始化的时间为O(1)。
A:增加两个动态数组,S和S',类似于栈,初始化时都为空,当某个关键字变成有效时,压入数组,其最大大小为实际存储在字典中的关键字数目。记直接寻址表为T,当某个关键字k变有效时,T[k]里存储S和S'的索引i,即T[K]=i;S[i]里存储那个有效的关键字k,即S[i]=k;S'[i]里存储指向卫星数据的指针。
下面是各个操作:
初始化:TOP[S]=TOP[S']=0
SEARCH(k):
if(T[k]>=1&&T[k]<=TOP[S]&&S[T[k]]==k)
return true
INSERT(k,x)
TOP[S]=TOP[S]+1
TOP[S']=TOP[S']+1
T[k]=TOP[S]
S[T[k]]=k
S'[T[k]]指向x
DELETE(k)
S[T[k]]=S[TOP[S]]
S'[T[k]]=S'[TOP[S']]
TOP[S]=TOP[S]-1
TOP[S']=TOP[S']-1
T[k]=0
- 算法导论11.1-4
- 算法导论11.1-4
- 算法导论11.1-4答案
- 算法导论 练习题 11.1-4
- 算法导论第十一章习题11.1-4
- 算法导论 11.1-4个人解法
- 算法导论 4-4
- 算法导论14.3-4
- 算法导论15.4-4
- 算法导论 1.1-4
- 算法导论 2.1-4
- 算法导论 2.3-4
- 算法导论 2-4
- 算法导论11.2-4
- 算法导论 3.1-4
- 算法导论 3.2-4
- 算法导论 3-4
- 算法导论 4.1-4
- STM32f10x升级固件库3.1.2使用要注意的地方
- sed和awk的常用实例
- Spring如何实现自动依赖注入-------autowire
- 使jsp支持EL表达式
- hdu 1540 Tunnel Warfare(线段树 连续区间)
- 算法导论11.1-4
- AJAX与spring mvc交互
- Linux下C编程里的makefile
- ExtJS 2.2中,从FormPanel中获取指定field控件
- tarjan算法
- 在linux上编译tolua++-1.0.93
- SQL数据库设计规范参考之数据库对象命名详细文档
- 杭电1012结题报告
- (转载)Linux管道命令