int main(void) { struct hashmap aa; struct hashmap *a= &aa; hashtable_initialize(a, 200, default_hash, 4); uint8_t key[4] = {1,2,3,4}; int i; for (i= 0; i < 10; i++) { key[0] = i; hashtable_add(a,key,(void*)5); } hashtable_iter(a,iter); printf("deleting\n"); for (i= 0; i < 5; i++) { key[0] = i; hashtable_delete(a,key); } hashtable_iter(a,iter); return 0; }
int hashtable_resize(HashTable * ht, size_t size){ HashTable * newht = hashtable_initialize(size, ht->maxCollisions, ht->growthFactor, ht->hf, ht->eq); int i; Item * next; // Re-enter all the items again into the new hashtable // with the new size. for(i=0; i<ht->size; i++){ if(ht->table[i]){ for(next=ht->table[i]; next; next=next->next){ hashtable_add(newht, next->key, next->value); } } hashtable_remove(ht, ht->table[i]->key); } free(ht->table); ht->size = newht->size; ht->table = newht->table; return(1); }