* @param factor Sets the percentage full before the hashtable is
* resized. Default ratio 0.5.
*/
- Hashtable(unsigned int initialcapacity = 1024, double factor = 0.5) {
+ Hashtable(unsigned int initialcapacity = 32, double factor = 0.5) {
// Allocate space for the hash table
table = (struct Hashlistnode<_Key, _Val> *)ourcalloc(initialcapacity, sizeof(struct Hashlistnode<_Key, _Val>));
zero = NULL;
tail = list = NULL;
}
-Hashtable<_Key, _Val, _KeyInt, _Shift, hash_function, equals> * clone() {
- Hashtable<_Key, _Val, _KeyInt, _Shift, hash_function, equals> * ctable = new Hashtable<_Key, _Val, _KeyInt, _Shift, hash_function, equals> (capacity, loadfactor);
- struct Hashlistnode<_Key, _Val> * ptr = list;
- while (ptr != NULL) {
- ctable->put(ptr->key, ptr->val);
- ptr = ptr->next;
+ Hashtable<_Key, _Val, _KeyInt, _Shift, hash_function, equals> *clone() {
+ Hashtable<_Key, _Val, _KeyInt, _Shift, hash_function, equals> *ctable = new Hashtable<_Key, _Val, _KeyInt, _Shift, hash_function, equals> (capacity, loadfactor);
+ struct Hashlistnode<_Key, _Val> *ptr = list;
+ while (ptr != NULL) {
+ ctable->put(ptr->key, ptr->val);
+ ptr = ptr->next;
+ }
+ return ctable;
}
- return ctable;
-}
/** @brief Hash table destructor */
tail = search;
else
list->prev = search;
+ list = search;
Size++;
return (_Val) 0;
}