1、我们通过一个例子来介绍拉链法。现在我们看下面这一个关键码集。它的散列表长度为11.
2、我们将所有的关键码对11取余。如下图所示。
3、我们准备如下图所示的散列表。
4、根据取余的值,将关键码放在相应的位置上。取余的值是几,就放在第几的位置上。比如关键码22,取余的值是0,我们就将22挂在第0个位置上。11取余的值也是0,我们直接挂在22后面即可。
5、接下来我们看拉链法查找成功时的平均查找长度。我们只需要将第一列被查找关键码的个数乘1,第二列被查找的关键码的个数乘2,两个值相加然后除以14(这里的14是关键码个数)。
6、比如我们这稍僚敉视个例子,第一列被查找个数是11(没有挂关键码的位置也需要查找),第二列被查找个数是5,将11和5相加再除以14,就得到了成功查找的平均查找长度。
7、那么查找不成功的平均查找长度呢?我们需要得到每一个位置上的关键码个数然后将它们相加,再除以11,这里的11是散列表长度。
8、比如我们这里第0位上有2个元素,第1个位置上有1个元素,第2个位置上有0个元素,依次类推。将所得个数相加除以11就得到了不成功的平均查找长度。