2017-04-05 42 views

回答

4

在您的解決方案的問題是,您使用的「線性探測」爲插入操作,但你沒有使用相同的方法來檢索它。

首先的 - 我會改變你的強調存儲來保存,而不是價值整體結構:

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

在這裏看到:https://play.golang.org/p/8JfTpbJcWx