F2D* resizeArray(F2D* array, int omin) 
{
	F2D* prev = NULL;
	F2D* current = array;
	int o;
    if(omin<0)
    {
        for(o=1; o>=-omin; o--)
        {
			prev = current;
            current = doubleSize(current);
			fFreeHandle(prev);
        }
    }
    if(omin>0)
    {
        for(o=1; o<= omin; o++)
		{
			prev = current;
            current = halveSize(current);
			fFreeHandle(prev);
		}
    }
	return current;
}
Beispiel #2
0
void deletePair(char* key, hashTable* hTable) {
	hTable->loadFactor = removePair(key, hTable->table, hTable->tableSize, hTable->loadFactor);

	if(hTable->loadFactor < hTable->minLoad && hTable->tableSize > 1) {
		hTable->table = halveSize(hTable->table, hTable->tableSize, hTable->loadFactor);
		hTable->loadFactor = hTable->loadFactor * 2;
		hTable->tableSize = hTable->tableSize / 2;
	}
}