2015-02-12 82 views
0

對於我的一個計算機科學類,我們需要編寫一個程序,使用散列來存儲鍵和值的列表。這個問題並不是真正的哈希方法,我只是對實現數據結構/使用什麼數據結構的最佳方式感到好奇。散列作爲一個整體

通過我們的書和一些在谷歌上的基本搜索,我注意到存儲這些值並不是真正的「最佳方法」。我似乎遇到的是鏈接列表的衝突解決方法等。

那麼是否有一個「最佳」的通用數據結構用於哈希?這是我第一次把哈希算法應用到算法分析中,所以我沒有太多的工作要做。

備註:我熟悉鏈接列表和某些程度的樹(在實踐中從未使用過)。

回答

1

如果這是一個計算機科學課的作業,那麼我建議你採用最簡單的哈希方案。

在一個簡單的場景中,可能的散列值是有限集合中的整數,比如說從0到n-1。爲此,你需要一個長度爲n的數組。

你在數組中存儲的是下一步......在一個簡單的場景中,你不應該處理碰撞算法。如果發生衝突,您只需將所有元素存儲在鏈接列表中的相同數組索引處。在那裏你有答案要存儲在數組中。

+0

因此,對於這種解決方案,最簡單的方法是使用哈希中的每個桶作爲鏈接列表來實現這種形式的衝突解決方案? – user3857017 2015-02-12 08:13:49

+1

我不知道我理解你的問題。散列是一個數字。存儲桶可以被實現爲包含元素的鏈接列表的類。然後,類有n個不同散列值的實例,存儲在由散列值索引的數組或向量中。 – Sztrovacsek 2015-02-12 09:04:46

+0

哈希表?那是更正確的術語嗎?這是有道理的,這是我一開始就傾向於的,但不確定這一切的後勤。 – user3857017 2015-02-12 20:45:38

相關問題