From 5df28bd5b5a468e9d83f9f8f729410b5d727b005 Mon Sep 17 00:00:00 2001 From: Sambath Kumar Logakrishnan <94133205+0x3634426974446576@users.noreply.github.com> Date: Tue, 1 Feb 2022 23:26:56 +0100 Subject: [PATCH] Tweaked get function of HashTable In case of key on present in table, now don't need to be compute hash for that key, then check corresponding list from bucket for that hash that key is present instead now agent will return expected undefined once there is no hash value present at fast lookup keys object --- src/data-structures/hash-table/HashTable.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/data-structures/hash-table/HashTable.js b/src/data-structures/hash-table/HashTable.js index b8b523ea..5a2967ac 100644 --- a/src/data-structures/hash-table/HashTable.js +++ b/src/data-structures/hash-table/HashTable.js @@ -85,7 +85,11 @@ export default class HashTable { * @return {*} */ get(key) { - const bucketLinkedList = this.buckets[this.hash(key)]; + const computedHash = this.keys[key]?? null; + if(computedHash === null){ + return undefined; + } + const bucketLinkedList = this.buckets[computedHash]; const node = bucketLinkedList.find({ callback: (nodeValue) => nodeValue.key === key }); return node ? node.value.value : undefined;