-
जावास्क्रिप्ट में दो हैश टेबल जोड़ना
कभी-कभी हमें एक जॉइन फ़ंक्शन का उपयोग करके कंटेनर्स को एक साथ जोड़ने और एक नया कंटेनर प्राप्त करने की आवश्यकता होती है। हम एक स्टैटिक जॉइन मेथड लिखेंगे जो 2 हैश टेबल लेता है और सभी वैल्यूज़ के साथ एक नया हैश टेबल बनाता है। सरलता के लिए, हम दूसरे से वैल्यूज़ को पहले पर ओवरराइड करने देंगे अगर दोनों म
-
जावास्क्रिप्ट में HashTable क्लास
यहां HashTable क्लास का पूरा कार्यान्वयन है। इसे निश्चित रूप से अधिक कुशल डेटा संरचनाओं और कोलिजन रिज़ॉल्यूशन एल्गोरिदम का उपयोग करके सुधारा जा सकता है। उदाहरण class HashTable { constructor() { this.container = []; // कंटेनर को खाली ऐरे से भरें // जिनका उपयोग कोलिजन के
-
जावास्क्रिप्ट में ट्री डेटा संरचना
ट्री संगठन पदानुक्रम चार्ट, फाइल सिस्टम आदि जैसे पदानुक्रमित संरचनाओं का प्रतिनिधित्व करता है। इसे और औपचारिक रूप से कहें तो, एक ट्री को रिकर्सिवली (स्थानीय रूप से) नोड्स के संग्रह (रूट नोड से शुरू) के रूप में परिभाषित किया जा सकता है, जहां प्रत्येक नोड एक डेटा संरचना होती है जिसमें एक वैल्यू होती
-
जावास्क्रिप्ट में बाइनरी ट्री
बाइनरी ट्री डेटा स्टोरेज उद्देश्यों के लिए उपयोग की जाने वाली एक विशेष डेटा संरचना है। बाइनरी ट्री में एक विशेष शर्त होती है कि प्रत्येक नोड में अधिकतम दो चाइल्ड हो सकते हैं। बाइनरी ट्री में एक क्रमबद्ध ऐरे और एक लिंक्ड लिस्ट दोनों के लाभ होते हैं क्योंकि सर्च क्रमबद्ध ऐरे की तरह तेज़ होता है और इं
-
जावास्क्रिप्ट में बाइनरी सर्च ट्री
बाइनरी सर्च ट्री एक विशेष व्यवहार प्रदर्शित करता है। एक नोड का बायां चाइल्ड का मान उसके पैरेंट के मान से कम होना चाहिए और नोड के दाएं चाइल्ड का मान उसके पैरेंट के मान से अधिक होना चाहिए। हम इस खंड में मुख्य रूप से ऐसे ट्रीज़ पर ध्यान केंद्रित करेंगे। बाइनरी सर्च ट्री पर ऑपरेशन्स हम बाइनरी सर्च ट्र
-
जावास्क्रिप्ट में Node
ट्री में प्रत्येक एलिमेंट एक नोड होता है। बाइनरी ट्री को परिभाषित करने से पहले हमें एक नोड को परिभाषित करने की आवश्यकता होती है क्योंकि ट्री में नोड्स होते हैं। हम एक बहुत ही सरल नोड परिभाषा बनाएंगे जिसमें 3 गुण होंगे, अर्थात्: लेफ्ट, राइट और डेटा। लेफ्ट - यह इस नोड के बाएं चाइल्ड का रेफरेंस रखता
-
जावास्क्रिप्ट का उपयोग करके BinaryTree बनाना
आइए समझते हैं कि हम जावास्क्रिप्ट में बाइनरी सर्च ट्री को कैसे बनाने और प्रस्तुत करने जा रहे हैं। हमें पहले BinarySearchTree क्लास बनाने और उस पर Node प्रॉपर्टी परिभाषित करने की आवश्यकता होगी। उदाहरण class BinarySearchTree { constructor() { // रूट एलिमेंट को नल से इनिशियलाइज़ करें।
-
जावास्क्रिप्ट में ट्री में की इंसर्ट करना
नव निर्मित बाइनरी ट्री में पहली इंसर्शन रूट पर एक नोड बनाती है। आगे की इंसर्शन बाइनरी सर्च ट्री के गुण के अनुसार इंसर्ट की जाएंगी कि बाएं चाइल्ड पैरेंट से छोटे होते हैं और दाएं वाले पैरेंट से बड़े होते हैं। आइए देखते हैं कि हम इस एल्गोरिदम को कोड में कैसे लागू कर सकते हैं: उदाहरण insertIter(data) {
-
जावास्क्रिप्ट बाइनरी सर्च ट्री में मान खोजना
हम BST के गुण का उपयोग करके इसमें एलिमेंट्स को खोजने जा रहे हैं। आइए पहले सर्च के एक इटरेटिव कार्यान्वयन को देखते हैं: उदाहरण searchIter(data) { let currNode = this.root; while (currNode !== null) { if (currNode.data === data) { // एलिमेंट मिल गया! return tru
-
जावास्क्रिप्ट बाइनरी सर्च ट्री में न्यूनतम और अधिकतम मान खोजना
बाइनरी सर्च ट्री में, अगर हम इस गुण को देखें कि बायां चाइल्ड हमेशा पैरेंट से छोटा होता है, तो हम पाएंगे कि अगर हम बाएं चाइल्ड की ओर तब तक पुनरावृत्ति करते रहें जब तक हम बिना बाएं चाइल्ड वाले नोड पर नहीं पहुंच जाते, तो हम मूल रूप से BST में सबसे छोटा एलिमेंट ढूंढ लेंगे। आइए इस फ़ंक्शन को अपने कोड मे
-
जावास्क्रिप्ट में Keys और Values मेथड
कभी-कभी डिक्शनरी के साथ काम करते समय, हमें किसी कार्य के लिए डिक्शनरी की केवल कीज़ एक ऐरे के रूप में चाहिए होती हैं। हम Object.keys का उपयोग करके किसी ऑब्जेक्ट के गुणों को आसानी से प्राप्त कर सकते हैं। हम इस मेथड का उपयोग अपने कंटेनर ऑब्जेक्ट से कीज़ वापस करने के लिए करेंगे। उदाहरण keys() { ret
-
जावास्क्रिप्ट का उपयोग करके डिक्शनरी क्लियर करना
हम एक clear() फ़ंक्शन लागू करेंगे जो कंटेनर की सामग्री को बस साफ कर देता है। उदाहरण के लिए, उदाहरण clear() { this.container = {} } आप इसका परीक्षण इस तरह कर सकते हैं: उदाहरण const myMap = new MyMap(); myMap.put(key1, value1); myMap.put(key2, value2); myMap.display(); myMap.clear(); myMap.displa
-
जावास्क्रिप्ट में डिक्शनरी के माध्यम से लूप करना
यहां हम अपनी क्लास में एक forEach फ़ंक्शन लागू करेंगे और एक कॉलबैक स्वीकार करेंगे जिसे हम हर की-वैल्यू जोड़ी पर कॉल कर सकते हैं। आइए देखते हैं कि ऐसा फ़ंक्शन कैसे लागू किया जा सकता है: उदाहरण forEach(callback) { for (let prop in this.container) { // कॉलबैक को इस तरह कॉल करें: callback(k
-
जावास्क्रिप्ट में डिक्शनरी क्लास
यहां MyMap क्लास का पूरा कार्यान्वयन है: उदाहरण class MyMap { constructor() { this.container = {}; } display() { console.log(this.container); } hasKey(key) { return key in this.container; } put(key, value) { this.container[key] = value;
-
जावास्क्रिप्ट में हैश टेबल डेटा संरचना
हैश टेबल एक डेटा संरचना है जो डेटा को एक एसोसिएटिव तरीके से स्टोर करती है। हैश टेबल में, डेटा ऐरे फॉर्मेट में स्टोर होता है, जहां प्रत्येक डेटा वैल्यू का अपना यूनिक इंडेक्स वैल्यू होता है। यदि हमें वांछित डेटा का इंडेक्स पता है तो डेटा तक पहुंच बहुत तेज हो जाती है। इस प्रकार, यह एक ऐसी डेटा संरचना
-
जावास्क्रिप्ट का उपयोग करके हैश टेबल बनाना
आइए एक साधारण क्लास सेट करें जिसका उपयोग हम इन सभी मेथड्स को परिभाषित करने के लिए करेंगे। हम हैश टेबल को स्टोर करने के लिए एक कंटेनर ऑब्जेक्ट बनाएंगे और टेबल को प्रदर्शित करने के लिए एक डिस्प्ले फ़ंक्शन बनाएंगे। ध्यान दें कि कोलिजन रिज़ॉल्यूशन के लिए, हम चेनिंग का उपयोग करेंगे। डिस्प्ले फ़ंक्शन टेब
-
जावास्क्रिप्ट का उपयोग करके हैश टेबल में एलिमेंट्स जोड़ना
हैश टेबल में एलिमेंट्स जोड़ते समय सबसे महत्वपूर्ण हिस्सा कोलिजन रिज़ॉल्यूशन है। हम इसके लिए चेनिंग का उपयोग करने जा रहे हैं। ऐसे अन्य एल्गोरिदम हैं जिनके बारे में आप यहां पढ़ सकते हैं: https://en.wikipedia.org/wiki/Hash_table#Collision_resolution अब आइए कार्यान्वयन को देखते हैं। हम एक हैश फ़ंक्शन ब
-
जावास्क्रिप्ट हैश टेबल में एलिमेंट खोजना
हमने इसे अपने पुट मेथड में पहले ही लागू कर दिया है। आइए इसे अलग से देखते हैं। उदाहरण get(key) { let hashCode = hash(key); for(let i = 0; i < this.container[hashCode].length; i++) { // चेन में एलिमेंट ढूंढें if(this.container[hashCode][i].key === key) { return thi
-
जावास्क्रिप्ट हैश टेबल से एलिमेंट्स हटाना
एलिमेंट्स को हटाने के लिए, हमें बस उन्हें ढूंढना होगा और एक साधारण स्प्लिस फ़ंक्शन कॉल का उपयोग करके उन्हें हटाना होगा जो ऐरे से एलिमेंट्स को उनकी जगह पर ही हटा देता है। आइए इसके कार्यान्वयन को देखते हैं: उदाहरण remove(key) { let hashCode = this.hash(key); for (let i = 0; i < this.container
-
जावास्क्रिप्ट में हैश टेबल के माध्यम से लूप करना
अब आइए एक forEach फ़ंक्शन बनाएं जो हमें सभी की-वैल्यू जोड़ियों पर पुनरावृत्ति करने और उन वैल्यूज़ पर कॉलबैक कॉल करने की अनुमति देगा। इसके लिए, हमें कंटेनर में प्रत्येक चेन पर लूप करना होगा और की-वैल्यू जोड़ियों पर कॉलबैक कॉल करना होगा। उदाहरण callback(key, value)); }); } आप इसका परीक्षण इस तरह