diff --git a/hashing/double_hash_hash_table.cpp b/hashing/double_hash_hash_table.cpp index 1a8c167d7..ae872c4f8 100644 --- a/hashing/double_hash_hash_table.cpp +++ b/hashing/double_hash_hash_table.cpp @@ -15,8 +15,8 @@ namespace { // keep the code local to this file by assigning them to an unnamed // fwd declarations using Entry = struct Entry; -bool putProber(Entry entry, int key); -bool searchingProber(Entry entry, int key); +bool putProber(const Entry& entry, int key); +bool searchingProber(const Entry& entry, int key); void add(int key); // Undocumented globals @@ -112,7 +112,7 @@ int doubleHash(int key, bool searching) { * @returns `true` if key is not present or is a `toumb` * @returns `false` is already occupied */ -bool putProber(Entry entry, int key) { +bool putProber(const Entry& entry, int key) { if (entry.key == notPresent || entry.key == tomb) { return true; } @@ -125,7 +125,7 @@ bool putProber(Entry entry, int key) { * @returns `true` if found * @returns `false` if not found */ -bool searchingProber(Entry entry, int key) { +bool searchingProber(const Entry& entry, int key) { if (entry.key == key) { return true; } diff --git a/hashing/linear_probing_hash_table.cpp b/hashing/linear_probing_hash_table.cpp index e807c546f..47739e8a5 100644 --- a/hashing/linear_probing_hash_table.cpp +++ b/hashing/linear_probing_hash_table.cpp @@ -18,15 +18,10 @@ using std::string; namespace { // keep the code local to this file by assigning them to an unnamed // namespace -/** Node object that holds key */ -struct Entry { - explicit Entry(int key = notPresent) : key(key) {} ///< constructor - int key; ///< key value -}; - // fwd declarations -bool putProber(Entry entry, int key); -bool searchingProber(Entry entry, int key); +using Entry = struct Entry; +bool putProber(const Entry& entry, int key); +bool searchingProber(const Entry& entry, int key); void add(int key); // Undocumented globals @@ -37,6 +32,12 @@ int tomb = -1; int size; bool rehashing; +/** Node object that holds key */ +struct Entry { + explicit Entry(int key = notPresent) : key(key) {} ///< constructor + int key; ///< key value +}; + /** * @brief Hash a key. Uses the STL library's `std::hash()` function. * diff --git a/hashing/quadratic_probing_hash_table.cpp b/hashing/quadratic_probing_hash_table.cpp index 1b9e2784a..55dfd681b 100644 --- a/hashing/quadratic_probing_hash_table.cpp +++ b/hashing/quadratic_probing_hash_table.cpp @@ -18,8 +18,8 @@ namespace { // keep the code local to this file by assigning them to an unnamed // fwd declarations using Entry = struct Entry; -bool putProber(Entry entry, int key); -bool searchingProber(Entry entry, int key); +bool putProber(const Entry& entry, int key); +bool searchingProber(const Entry& entry, int key); void add(int key); // globals @@ -87,7 +87,7 @@ int quadraticProbe(int key, bool searching) { } // Finds empty spot -bool putProber(Entry entry, int key) { +bool putProber(const Entry& entry, int key) { if (entry.key == notPresent || entry.key == tomb) { return true; } @@ -95,7 +95,7 @@ bool putProber(Entry entry, int key) { } // Looks for a matching key -bool searchingProber(Entry entry, int key) { +bool searchingProber(const Entry& entry, int key) { if (entry.key == key) { return true; }