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