but it is class HashTable3 that actually stores the:
... array of pointers to buckets
which in turn seems to be duplicated in the HashTableOne overloaded ctor
And HashTableOne, HashTable3 is a confusing naming convention, soon forgetting which was what. Why not call them LinkedList and HashTable respectively since a HashTable is an array of LinkedLists?
See here for a reasonable implementation of a Hashtable – there could be better ones around or you might write one yourself if you hunker down: http://pumpkinprogrammer.com/2014/06/21/c-tutorial-intro-to-hash-tables/