data_structure hashing hash_table associative_array open_addressing separate_chaining linear_probing quadratic_probing double_hashing cuckoo_hashing hopscotch_hashing coalesced_hashing