线段Hash算法原理是:通过Hash算法把Key转换成一个int类型的数字,然后按照每次比较2个bit来定位到一个内存块。结构图如图1-1:
![线段Hash算法(原创) 线段Hash算法(原创)](https://i-blog.csdnimg.cn/blog_migrate/3b39a524a86608165ac8557f93f96bab.jpeg)
图1-1
图1-1中的每个节点成为bucket,而每个bucket有4个元素。我们可以使用以下结构体定义:
struct bucket {
int elems[4];
};
因为每个元素可能指向下一个节点或者一个数据块,所以我们必须有个标志指定元素指向的是下一个节点还是数据块。那么,我们把bucket的定义修改成:
struct bucket {
unsigned char flags[4];
int elems[4];