Project Description
A C# dictionary like implementation of a linear hash table. It is more memory efficient than the .NET dictionary and also almost as fast.

The linear hash table is more memory efficiant compared with the .NET dictionary as rather than allocating memory in chunks it grows by one entry at a time.
See http://en.wikipedia.org/wiki/Linear_hashing for an explanation on what linear hashing is.

Constructor:
For most cases the paramaterless constructor should be used.
For the other constructor, the capacity parameter sets the initial size of the hash table and it must be a power of 2. This defaults to 16.
The loadToMaintain paramater controls the average length of the collision chains and must be above 1. This defaults to 5.

Releases:

b3 Release:
Implemented IDictionary interfaces but most functions not yet tested. Add/Remove and search functionalities should be working well. Enumerators will not work on this dictionary yet.
b2 Release:
Added a default constructor which defaults capacity to 16 and loadToMaintain to 5.
An exception is now thrown if capacity is not set to a power of 2, or loadToMaintain is below 1.

Last edited Mar 7, 2010 at 8:51 PM by Projectilefish, version 6