最基础的Hash
type thash=^node; node=record state:longint; next:thash; end; var a,i:longint; p:thash; hash:array[0..11]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 11]; //p指针next域指向hash[k mod 11] hash[k mod 11]:=p; end; function query(k:longint):boolean; //查询Hash中是否有k var t:thash; begin p:=hash[k mod 11]; 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:=1 to 50 do insert(2*i); //把偶数加入哈希表(只是不想自己打了) for i:=1 to 3 do begin read(a); writeln(query(a)); //查询 end; end.
这是一个极其基础的hash表,作为一个pascal党,并不常用指针,所以只是简单练一下。。