ট্রি ডেটা স্ট্রাকচার
একটি গাছ হল কিছু প্রান্ত দ্বারা সংযুক্ত নোডের একটি সংগ্রহ। প্রচলিতভাবে, একটি গাছের প্রতিটি নোড কিছু ডেটা এবং তার বাচ্চাদের রেফারেন্স রাখে।
বাইনারী সার্চ ট্রি
বাইনারি সার্চ ট্রি হল একটি বাইনারি ট্রি যেখানে কম মানসম্পন্ন নোডগুলি বাম দিকে সংরক্ষণ করা হয় এবং উচ্চ মানের নোডগুলি ডানদিকে সংরক্ষণ করা হয়৷
উদাহরণস্বরূপ, একটি বৈধ BST-এর চাক্ষুষ উপস্থাপনা হল −
25 / \ 20 36 / \ / \10 22 30 40
আসুন এখন জাভাস্ক্রিপ্ট ভাষায় আমাদের নিজস্ব বাইনারি সার্চ ট্রি বাস্তবায়ন করি।
ধাপ 1:নোড ক্লাস
এই ক্লাসটি BST-এর বিভিন্ন পয়েন্টে উপস্থিত একটি একক নোডের প্রতিনিধিত্ব করবে। একটি BST উপরে বর্ণিত নিয়ম অনুসারে স্থাপন করা ডেটা এবং চাইল্ড রেফারেন্স সংরক্ষণকারী নোডের সংগ্রহ ছাড়া কিছুই নয়৷
<প্রি>ক্লাস নোড{ কনস্ট্রাক্টর(ডেটা) { this.data =ডেটা; this.left =null; this.right =null; };};একটি নতুন নোড ইন্সট্যান্স তৈরি করতে, আমরা কিছু ডেটা দিয়ে এই ক্লাসটিকে এভাবে কল করতে পারি −
const newNode =new Node(23);
এটি 23-এ ডেটা সেট সহ একটি নতুন নোড ইন্সট্যান্স তৈরি করবে এবং বাম এবং ডান রেফারেন্স উভয়ই শূন্য হবে৷
ধাপ 2:বাইনারি সার্চ ট্রি ক্লাস:
class BinarySearchTree{ constructor(){ this.root =null; };};
এটি বাইনারি সার্চ ট্রি ক্লাস তৈরি করবে যা আমরা নতুন কীওয়ার্ড দিয়ে অ্যাট্রি ইনস্ট্যান্স তৈরি করতে পারি।
এখন যেহেতু আমরা মৌলিক জিনিসগুলি সম্পন্ন করেছি, আসুন সঠিক জায়গায় একটি নতুন নোড সন্নিবেশ করার দিকে এগিয়ে যাই (সংজ্ঞায় বর্ণিত BST-এর নিয়ম অনুসারে)।
ধাপ 3:BST এ একটি নোড সন্নিবেশ করান
class BinarySearchTree{ constructor(){ this.root =null; } insert(data){var newNode =new Node(data); if(this.root ===null){ this.root =newNode; }else{ this.insertNode(this.root, newNode); }; }; insertNode(node, newNode){ if(newNode.dataউদাহরণ
সম্পূর্ণ বাইনারি অনুসন্ধান ট্রি কোড:
<প্রি>ক্লাস নোড{ কনস্ট্রাক্টর(ডেটা) { this.data =ডেটা; this.left =null; this.right =null; };};ক্লাস BinarySearchTree{ constructor(){ this.root =null; } insert(data){var newNode =new Node(data); if(this.root ===null){ this.root =newNode; }else{ this.insertNode(this.root, newNode); }; }; insertNode(node, newNode){ if(newNode.data