之前写过哈希表的一些操作,下面来介绍哈希表的一种变形——位图
位图是用来表示数字是否存在的情况
位图的优点是能够节省很多空间,但是缺点就是只能够表示数字是否存在
1.初始化操作
12 void BitmapInit(Bitmap* bm,uint64_t capacity)
13 {
14 if(bm == NULL)
15 {
16 //非法输入
17 return ;
18 }
19 bm->capacity = capacity;//capacity 表示该位图能表示的最大的数字
20 uint64_t size = GetSize(capacity);//size表示申请内存时对应数组元素个数
21 bm->data = (BitmapType*)malloc(sizeof(BitmapType)*size);
22 memset(bm->data,0,sizeof(BitmapType)*size);
23 }
24
2.销毁操作
25 void BitmapDestroy(Bitmap* bm)
26 {
27 if(bm == NULL)
28 {
29 return ;
30 }
31 bm->capacity = 0;
32 free(bm->data);
33 return ;
34 }
3.