這個(gè)玩意的設(shè)計(jì)和升級(jí)降級(jí)規(guī)則都挺好理解的悯蝉。個(gè)人覺(jué)得完全沒(méi)有skiplist難理解归形,
typedef struct intset {
// 編碼方式
uint32_t encoding;
// 集合包含的元素?cái)?shù)量
uint32_t length;
// 保存元素的數(shù)組
int8_t contents[];
} intset;
數(shù)據(jù)被存儲(chǔ)在 contents 數(shù)組中,encoding 記錄了編碼的方式鼻由,如果保存的元素越界暇榴,按照升級(jí)的辦法擴(kuò)展存儲(chǔ)空間。
升級(jí)的設(shè)計(jì)思路還是很巧妙的蕉世,反正我記住了蔼紧,我也就不想寫了。
從后往前狠轻,一倍擴(kuò)大奸例。