我们来简单的例子说明什么是线性探测
假设我们有一个数组
假设我们用当前公式计算当前数据在数组中的下标位置
int i = num%11;
假设我们有一组数据{1,2,3,11,12,13,14}需要放置在数组中
那么他们对应的下标位置应该分别为
数据:1 下标:1%11 = 1
数据:2 下标:2%11 = 2
数据:3 下标:3%11 = 3
数据:11 下标:11%11 = 0
数据:12 下标:12%11 = 1
数据:13 下标:13%11 = 2
数据:14 下标:14%11 = 3
好,我们把他分别落到对应位置,当 1,2,3,11 四个数落入没有任何问题
但是当落入12的时候,发现他的下标为1,跟数据1的下标重复了,下标1位置已经放入数据1了,那么怎么办呢?
按照线性探测的说法是,如果当前位置数据冲突了,就从当前位置起,往后找,直到找到为null的位置,然后把数据存储到此节点
那么12最终存储的位置就是如下图
同理,13和14的落入就应该如下图
本文是综合自己的认识和参考各类资料(书本及网上资料)编写,若有侵权请联系作者,所有内容仅代表个人认知观点,如有错误,欢迎校正; 邮箱:1354518382@qq.com 博客地址:https://blog.csdn.net/qq_35576976/