contributed by < TimidCactus
>
AAA = n->next = first
BBB = n->pprev = &h->first
延伸題目1
malloc 一個 pointer,裡面放大小和 hash table 的 pointer , init 成 NULL。
在 DOC 中有看到比宣告 hlist_head array 的宣告,我覺得其實可以在主程式中用那個就好了, hash table 的位置不連續就沒用了,所以一開始就知道了大小,就直接宣告。
以前學密碼學的時候有學過這類的東西, hash 用一個大質數可以被免運算後的碰撞,這樣中胴一個桶子裡的機會就會變少,但這個不是質數卻比質數的效果來的好。
這個論文在備讀列中
快速找到是那個桶子裡的再一個個比對 key ,並回傳整個 entry 。
找出該 key 所對應的桶子,再放去第一個,O(1)的時間複雜度。
把每一個桶子裡的 node 分割出來,把原來的串也補起來。
但為什麼直接一個 while(ptr) 和 next 先存起來,把 ptr free 掉的操作,怕會存取到未定義記憶體嗎?我未見到有相關操作。