কম্পিউটার

একটি জাভাস্ক্রিপ্ট বাইনারি সার্চ ট্রিতে মান অনুসন্ধান করা হচ্ছে


আমরা একটি 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. জাভাস্ক্রিপ্ট ট্রিতে প্রি-অর্ডার ট্রাভার্সাল

  2. জাভাস্ক্রিপ্ট ট্রিতে ইন-অর্ডার ট্রাভার্সাল

  3. জাভাস্ক্রিপ্টে একটি স্ট্রিং কীভাবে অনুসন্ধান করবেন?

  4. ডেটা স্ট্রাকচারে ভারসাম্যপূর্ণ বাইনারি অনুসন্ধান গাছ