1
我想实现一个散列程序,我插入并使用线性探测来解决冲突。当我尝试恢复数值时,由于我使用线性探测来解决冲突,因此我得到了不同的值。如何使用线性探测解析冲突后从哈希表中检索值?
这是我的计划:https://play.golang.org/p/7Pmqu6A313
我想实现一个散列程序,我插入并使用线性探测来解决冲突。当我尝试恢复数值时,由于我使用线性探测来解决冲突,因此我得到了不同的值。如何使用线性探测解析冲突后从哈希表中检索值?
这是我的计划:https://play.golang.org/p/7Pmqu6A313
在您的解决方案的问题是,您使用的“线性探测”为插入操作,但你没有使用相同的方法来检索它。
首先的 - 我会改变你的强调存储来保存,而不是价值整体结构:
var hasharray [15]Item
其次,我会改变的检索方法检查与计算的散列索引项的值,并经过通过一个迭代的项目之一,以找到实际的项目,如果有冲突:
func retrieve(key string) {
index := hashmethod(key)
found := false
for !found {
item:= hasharray[index];
if key == item.key {
found = true;
fmt.Println(index, item)
} else if index != size-1 {
index++
} else {
index = 0
}
}
}