课程设计:哈希表操作 30

建立一个哈希表,哈希函数为除留余数法,处理冲突的方法为线性探测再散列或二次探测再散列。往哈希表中依次存入插入多个单词。显示哈希表的存储情况。计算哈希表的平均查找长度。程序... 建立一个哈希表,哈希函数为除留余数法,处理冲突的方法为线性探测再散列或二次探测再散列。
往哈希表中依次存入插入多个单词。
显示哈希表的存储情况。
计算哈希表的平均查找长度。
程序模块化设计。
急!!急!!!急!!!!
展开
 我来答
silence_sure
2012-10-18
知道答主
回答量:15
采纳率:0%
帮助的人:2.3万
展开全部
PASCAL语言 不知您能否看懂
function bkd(ss:string):longint;//哈希函数
var i:longint;
begin
bkd:=0;
for i:=1 to length(ss) do
bkd:=((bkd*131+ord(ss[i])) and $FFFFFFF) mod 999997;
end;
function find(ss:string):longint;//查找操作
var j:longint;
begin
j:=hash[num];//哈希表的头指针
while (j>0) and (list[j]<>ss) do j:=next[j];//拉链探测,相当于一个桶来处理冲突
exit(j);//返回在线性表中的位置
end;
procedure insert(ss:string);//插入操作,SS为插入元素,以字符串的形式存储
var j:longint;
begin
inc(loc);
list[loc]:=ss;//线性表
next[loc]:=hash[num];//链到对应哈希值的桶上
hash[num]:=loc;
end;
哈希值计算:NUM:=BKD(SS) MOD OO;oo就是你要除余得数
追问
我们没有学这个语言。。。
有用C语言或者C++的么?要原创的
追答
上面这是我自己写的,我不会C额,不过这个PASCAL语言是最好懂的语言,既然你会C,肯定能读懂PASCAL
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式