哈希表(散列表)
哈希表是唯一的专用于集合的数据结构,可以以常量的平均时间实现插入,删除和查找。
哈希表的思想是:用一个与集合规模差不多大的数组来存储这个集合,将数据元素的关键字映射到数组的下标,这个映射称为“散列函数”,数组称为“散列表”。查找时,根据被查找的关键字找到存储数据元素的地址,从而获取数据元素。
哈希碰撞:
对不同的关键字可能得到同一散列地址,即f(k1)=f(k2),这种现象成为碰撞(Collision)。
具有相同函数值得关键字对该散列函数来说称作同义词
解决办法:
1.链地址法(拉链法) 2.开放寻址法 3.再哈希法 4.建立一个公共溢出区
链地址法:
1.如果哈希表空间为0~m-1,设置一个由m个指针分量组成得一维数组ST[m],
2.凡哈希地址为i得数据元素都插入到头指针为ST[i]的链表中。