查找失败是指你要找的这个数不在哈希表中,所以只要一直查找到散列表中第一个关键字为空的地址即可。例如,你要查找关键字X(实际上它并不在该散列表中),它对应的散列值为3,那么什么时候才能断定X不在散列表中呢?
查找地址3,发现不是。当前查找次数1。
查找地址4,发现不是。当前查找次数2。
...
查找地址7,发现不是。当前查找次数5。
查找地址8,发现不是,并且该地址没有存储关键字。此时就可以知道,关键字X一定不在散列表中,查找结束。当前查找次数6。(这个次数6对应你图中的ASL-unsucc计算式中的6)
总结,你对如何判断某元素不在哈希表中的理解错了,并不是地址0~6的元素都不为空,就说明查找不会失败。这个哈希表的长度为10,最多只能存储10个元素(不是7哦),当前已存储7个。那么这7个元素之外的元素,都会查找失败。
留个小问题,如果这次是地址0~9的元素都不为空(散列表满了),如何确定某元素不在该哈希表中呢?
参考链接:
注1:博客中关于查找失败部分的查找方法似乎有错误,但是也可能是我错了。