Implemented hashmap deletion with tombstones
This commit is contained in:
parent
44c9833117
commit
f22c7c1a73
3 changed files with 169 additions and 36 deletions
29
examples/hm_del.c
Normal file
29
examples/hm_del.c
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#include <stdio.h>
|
||||
#define LAZY_IMPL
|
||||
#include "../lazy.h"
|
||||
|
||||
void print_hm_idx(void *hm, size_t k) {
|
||||
typedef Lz_HM(size_t, size_t) HM;
|
||||
HM map = *(HM*)hm;
|
||||
if (lz_hm_exists(map,k)) {
|
||||
printf("hm[%zu] = %zu\n", k, lz_hm_get(map,k));
|
||||
} else {
|
||||
printf("hm[%zu] = <N/A>\n", k);
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
Lz_HM(size_t, size_t) hm;
|
||||
lz_hm_init(hm);
|
||||
for (size_t i = 0; i < 16; ++i) {
|
||||
lz_hm_add(hm, i, 2*i);
|
||||
}
|
||||
|
||||
for (size_t i = 4; i < 12; ++i) {
|
||||
lz_hm_remove(hm, i);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < 16; ++i) {
|
||||
print_hm_idx(&hm, i);
|
||||
}
|
||||
}
|
||||
|
|
@ -5,11 +5,12 @@
|
|||
int main() {
|
||||
Lz_HM(size_t,size_t) hm;
|
||||
lz_hm_init(hm);
|
||||
for (size_t i = 0; i < 384; ++i) {
|
||||
size_t cnt = 384;
|
||||
for (size_t i = 0; i < cnt; ++i) {
|
||||
lz_hm_add(hm, i, 2*i);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < 384; ++i) {
|
||||
printf("hm[%zu] = %zu\n", i, lz_hm_get(hm,i));
|
||||
for (size_t i = 0; i < cnt; ++i) {
|
||||
printf("hm[%zu] = %zu\n", i, lz_hm_get(hm, i));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue