最基础的Hash

时间:2021-08-27 19:28:31
type
thash=^node;
node=record
state:longint;
next:thash;
end; var
a,i:longint;
p:thash;
hash:array[..]of thash; //Hash表 procedure insert(k:longint); //在哈希表中插入k
var
p:thash;
begin
new(p); //新建指针地址
p^.state:=k; //p指针state域大小为k
p^.next:=hash[k mod ]; //p指针next域指向hash[k mod ]
hash[k mod ]:=p;
end; function query(k:longint):boolean; //查询Hash中是否有k
var
t:thash;
begin
p:=hash[k mod ];
while p<>nil do
if p^.state=k then exit(true) //如果当前p的state域等于k则输出true
else p:=p^.next;
exit(false); //返回false
end; //以上为hash的程序 begin
for i:= to do
insert(*i); //把偶数加入哈希表(只是不想自己打了)
for i:= to do
begin
read(a);
writeln(query(a)); //查询
end;
end.

这是一个极其基础的hash表,作为一个pascal党,并不常用指针,所以只是简单练一下。。