Fork me on GitHub

数据结构---查找(2)

二、哈希查找

1.定义:哈希也称为散列,哈希查找的好处在于不用经过一系列的比较后才能确定位置。通过一个哈希函数可以快速定位存储位置,得到查找结果。

2.哈希冲突:不同关键字的多为数据元素映射到同一个存储位置,就导致哈希冲突。我们不可能使无限量的数据存储到有限的存储空间中,所以哈希冲突时不可避免的。

3.设计哈函数:直接定址法、除留余数法、平方取中法、折叠法。

4.避免哈希冲突的办法:线性开放寻址法、拉链法。这里采用拉链法来完成哈希查找。

myHashTable.cs

Code

 

因为用到了单链表,之前又没写,所以只好自己动手再写两个:

OneLinkNode.cs

Code

OneLink.cs

Code

 

这里有几个好玩的东西,一个是C#中用来替代指针方法的问题比较突出;还一个是关于访问权限的问题,gray告诉我:“记住私有是指对类型私有,不是对对象私有”,虽然有点模糊,但起码有点明白了。以前因为访问性的问题,我把所有的成员访问权限设置为公有,太懒写属性访问器了。

posted @ 2009-04-15 19:05  idoku  阅读(211)  评论(0编辑  收藏  举报