1、GNUStep版本的哈希表,解决冲突的方式是拉链法(源码见GSIMap,结构是map->bucket->node)。
数据结构如下:
拉链法冲突后查找流程:
map->根据key的hash算出bucket的地址->遍历bucket里面的node,判断key对不对。
2、CoreFundation里面的CFDictionary,冲突时使用了开放寻址法,使用了rehash算法:
CFConstBasicHashRef的结构如下:
1、GNUStep版本的哈希表,解决冲突的方式是拉链法(源码见GSIMap,结构是map->bucket->node)。
数据结构如下:
拉链法冲突后查找流程:
map->根据key的hash算出bucket的地址->遍历bucket里面的node,判断key对不对。
2、CoreFundation里面的CFDictionary,冲突时使用了开放寻址法,使用了rehash算法:
CFConstBasicHashRef的结构如下: