开放地址法
发生冲突进行探查,沿探查序列进行探查。
Hi=(H(key)+di) mod m
H(key)为Hash函数,m为散列表表长,di为增量序列。
拉链法
链表头存放到一个数组中,如果发生冲突,则对表头进行插入。
拉链法优点:
- 冲突简单,无堆积,查找平均长度较短。
- 适合无法确定表长的情况。
- 开放地址法要去装填因子较小,拉链法装填因子可大于1。
- 拉链法删除插入操作易于操作,对于开放地址法不能简单置为空,否则查找会被截断,只能进行做删除标记。
拉链法缺点
需要额外空间,结点规模较小时,开放地址法相比于拉链法通过节省指针空间,装填因子更小,提高速度。