1. 程式人生 > >基於雜湊表實現字典和集合

基於雜湊表實現字典和集合

上一節說到了雜湊表。

我們提到了字典和集合是由雜湊表實現的,具體的實現過程是怎麼樣的呢?

其實很簡單,字典裡面有取值,新增值,正好對應的就是雜湊表中的find和add方法。使用__getitem__和__setitem__代替兩者就可以了。然後對於keys,values取值,只需要遍歷迴圈就行了。

這裡需要注意一點,由於字典是由雜湊表實現的,那麼字典的key值就必須是可雜湊的,否則該key值無法用雜湊函式進行解析。

而集合其實就是字典,在字典的基礎上把所有key對應的value的值賦值1就行了,至於集合的各種方法,使用for迴圈判斷就行了。

再說說個人對可變型別不可雜湊的原因,因為使用雜湊函式的時候,如果對一個可變型別進行雜湊,那麼原資料型別會得到相應的改變,既無法通過雜湊值返回到該可變型別,或者是可變型別沒有雜湊的返回值?暫時想不通,以後系統的學資料結構再說!有知道的可以評論,前幾個月學的時候還想通了,現在懵逼了。。。。。。