The constructor and destructor for the ChainedHashTable
class are defined in Program .
The constructor takes a single argument of type unsigned int
which specifies the size of hash table desired.
The constructor simply initializes the HashTable base class
and the array member variable accordingly.
Initializing the array variable involves constructing
the required number of empty linked lists.
Consequently, the running time for the ChainedHashTable
constructor is O(M) where M is the size of the hash table.
Program: ChainedHashTable Class Constructor, Destructor and Purge Member Function Definitions
The ChainedHashTable destructor simply calls the Purge member function. Since the ChainedHashTable is a container, the Purge function must delete any contained objects if it is the owner of those objects. Therefore, the Purge function is required to traverse each of the linked lists in the array.
To determine the running time of the Purge function,
we will assume that there are n contained objects
and the length of the array is M.
Furthermore, let be the number of items
in the
linked list
for
.
Note that
.
The running time of the inner loop
for the
iteration of the outer loop
is
.
The constant overhead arises from the loop termination test
which must be done at least once.
The total running time of the destructor is given by
If we assume that ,
the running time simplifies to O(M+n).