আমরা একটি 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