হ্যাশ টেবিলে উপাদান যোগ করার সময় সবচেয়ে গুরুত্বপূর্ণ অংশ হল সংঘর্ষের রেজোলিউশন। আমরা একই জন্য চেইনিং ব্যবহার করতে যাচ্ছি. অন্যান্য অ্যালগরিদম রয়েছে যা আপনি এখানে পড়তে পারেন:https://en.wikipedia.org/wiki/Hash_table#Collision_resolution
এখন এর বাস্তবায়ন তাকান. আমরা একটি হ্যাশ ফাংশন তৈরি করব যা শুধুমাত্র এই সহজ রাখার জন্য পূর্ণসংখ্যাগুলিতে কাজ করবে। কিন্তু একটি আরও জটিল অ্যালগরিদম ব্যবহার করা যেতে পারে প্রতিটি বস্তুকে হ্যাশ করার জন্য -
উদাহরণ
put(key, value) { let hashCode = hash(key); for(let i = 0; i < this.container[hashCode].length; i ++) { // Replace the existing value with the given key // if it already exists if(this.container[hashCode][i].key === key) { this.container[hashCode][i].value = value; return; } } // Push the pair at the end of the array this.container[hashCode].push(new this.KVPair(key, value)); }
আপনি
ব্যবহার করে এটি পরীক্ষা করতে পারেনউদাহরণ
let ht = new HashTable(); ht.put(10, 94); ht.put(20, 72); ht.put(30, 1); ht.put(21, 6); ht.put(15, 21); ht.put(32, 34); ht.display();
আউটপুট
এটি −
আউটপুট দেবে0: 1: 2: 3: 4: { 15: 21 } 5: 6: 7: 8: { 30: 1 } 9: { 20: 72 } 10: { 10: 94 } -->{ 21: 6 } -->{ 32: 34 }