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
}
}
}