Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट बाइनरी सर्च ट्री में मूल्यों की खोज करना


हम इसमें तत्वों को देखने के लिए BST की संपत्ति का उपयोग करने जा रहे हैं। आइए पहले खोज के पुनरावृत्त कार्यान्वयन को देखें -

उदाहरण

searchIter(data) {
   let currNode = this.root;
   while (currNode !== null) {
      if (currNode.data === data) {
         // Found the element!
         return true;
      } else if (data < currNode.data) {
         // Go Left as data is smaller than parent
         currNode = currNode.left;
      } else {
         // Go right as data is greater than parent
         currNode = currNode.right;
      }
   }
   return false;
}

इस फ़ंक्शन में, हम रूट के साथ currNode के रूप में शुरू करते हैं और currNode के डेटा की तुलना में हमारे डेटा की जांच करते हैं। अगर हमें एक मैच मिलता है तो हम सही लौटते हैं, अन्यथा हम डेटा के संबंध में currNode के डेटा के अनुसार बाएं या दाएं में फिर से चलना जारी रखते हैं जब तक कि हम या तो एक पत्ते तक नहीं पहुंच जाते या हमारे तत्व को ढूंढ नहीं लेते।

आप इसका परीक्षण कर सकते हैं -

उदाहरण

let BST = new BinarySearchTree();
BST.insertIter(10);
BST.insertIter(15);
BST.insertIter(5);
BST.insertIter(50);
BST.insertIter(3);
BST.insertIter(7);
BST.insertIter(12);

console.log(BST.searchIter(2));
console.log(BST.searchIter(12));
console.log(BST.searchIter(50));
console.log(BST.searchIter(-22));
console.log(BST.searchIter(200));

आउटपुट

यह आउटपुट देगा -

false
true
true
false
false

सम्मिलित फ़ंक्शन के समान, खोज को पुनरावर्ती रूप से भी लागू किया जा सकता है।

searchRec(data) {
   return searchRecHelper(data, this.root);
}

फिर से, हमें एक सहायक फ़ंक्शन बनाने की आवश्यकता होगी जिसे हम कक्षा के एक भाग के रूप में नहीं चाहते हैं, इसलिए हम इस फ़ंक्शन को वर्ग परिभाषा के बाहर बनाएंगे -

उदाहरण

function searchRecHelper(data, root) {
   if (root === null) {
      // Reached leaf but didn't find it.
      return false;
   }
   if (data < root.data) {
      return searchRecHelper(data, root.left);
   } else if (data > root.data) {
      return searchRecHelper(data, root.right);
   }
   // This means element is found
   return true;
}

आप इसका परीक्षण कर सकते हैं -

उदाहरण

let BST = new BinarySearchTree();
BST.insertRec(10);
BST.insertRec(15);
BST.insertRec(5);
BST.insertRec(50);
BST.insertRec(3);
BST.insertRec(7);
BST.insertRec(12);

console.log(BST.searchRec(2));
console.log(BST.searchRec(12));
console.log(BST.searchRec(50));
console.log(BST.searchRec(-22));
console.log(BST.searchRec(200));

आउटपुट

यह आउटपुट देगा -

false
true
true
false
false

  1. जावास्क्रिप्ट ट्री में क्रम में ट्रैवर्सल

    इस ट्रैवर्सल मेथड में, पहले लेफ्ट सबट्री, फिर रूट और बाद में राइट सब-ट्री का दौरा किया जाता है। हमें हमेशा याद रखना चाहिए कि प्रत्येक नोड स्वयं एक सबट्री का प्रतिनिधित्व कर सकता है। यदि बाइनरी ट्री को क्रम में ट्रेस किया जाता है , आउटपुट आरोही क्रम में क्रमबद्ध कुंजी मान उत्पन्न करेगा। हम A, . स

  1. जावास्क्रिप्ट में स्ट्रिंग की खोज कैसे करें?

    जावास्क्रिप्ट में स्ट्रिंग खोजने के लिए निम्नलिखित कोड है - उदाहरण दस्तावेज़ बॉडी { फॉन्ट-फ़ैमिली:सेगो यूआई, ताहोमा, जिनेवा, वर्दाना, सेन्स-सेरिफ़; } .result {फ़ॉन्ट-आकार:20px; फ़ॉन्ट-वजन:500; }जावास्क्रिप्ट में स्ट्रिंग की खोज करनावसंत का मौसम आने वाला है।यहां क्लिक करेंउपरोक्त स्ट्रिंग में स्प्रिं

  1. डेटा संरचना में संतुलित बाइनरी सर्च ट्री

    यहां हम देखेंगे कि संतुलित बाइनरी सर्च ट्री क्या है। बाइनरी सर्च ट्री (BST) बाइनरी ट्री होते हैं, जिनके बाएं बच्चे में कम तत्व होते हैं, और दाएं बच्चे में अधिक तत्व होते हैं। बीएसटी में तत्वों की खोज के लिए औसत समय जटिलता ओ (लॉग एन) है। यह बाइनरी सर्च ट्री की ऊंचाई पर निर्भर करता है। बाइनरी सर्च ट्