Hash Table

  • Extendible Hash Table 算法实现

    这篇文章围绕 Extendible Hash Table 的工程实现展开,重点补足很多资料只讲扩容不讲收缩、只讲概念不讲代码的空白。正文先约定 directory、bucket、page、global depth、local depth 和 split image bucket 等术语与规则,再分别说明如何根据深度生成 mask、如何计算兄弟 bucket、以及 directory 的 grow 和 shrink 逻辑。后半部分详细拆解插入、删除和收缩流程,解释桶分裂时 page 的重新分配、directory 指针和 local depth 的更新方式,以及在 bucket 为空时如何与 split image bucket 合并并尝试压缩 directory。

    2021年11月4日
    7.1K42