কম্পিউটার

জাভাস্ক্রিপ্টে একটি BST এর বাম পাতার সমষ্টি খোঁজা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি বাইনারি সার্চ ট্রির মূলে একমাত্র যুক্তি হিসেবে নেয়৷

ফাংশনটি কেবল BST এর বাম পাতায় সংরক্ষিত ডেটার যোগফল গণনা করা উচিত।

উদাহরণস্বরূপ, যদি গাছটি এইরকম দেখায় -

8/ \1 10/ \5 17

তারপর আউটপুট −

হওয়া উচিত
const আউটপুট =6;

আউটপুট ব্যাখ্যা:

কারণ 1 এবং 5 মান সহ গাছে দুটি বাম পাতা রয়েছে।

উদাহরণ

এর জন্য কোড হবে −

<প্রি>ক্লাস নোড{ কনস্ট্রাক্টর(ডেটা) { 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 { if (!node) return false; রিটার্ন (node.left ===null &&node.right ===null);}const traverseTreeAndSumLeftLeaves =(root, sum =0) => { if (!root) ফেরত যোগফল; যদি (isLeaf(root)) যোগফল ফেরত দেয়; if (root.left) { if (isLeaf(root.left)) { যোগফল +=root.left.data; traverseTreeAndSumLeftLeaves(root.left, sum); } else sum =traverseTreeAndSumLeftLeaves(root.left, sum); } if (root.right) { if (isLeaf(root.right)) ফেরত যোগফল; else { sum =traverseTreeAndSumLeftLeaves(root.right, sum); } } যোগফল ফেরত দিন;};console.log(traverseTreeAndSumLeftLeaves(BST.root));

আউটপুট

কনসোলে আউটপুট হবে −

7

  1. জাভাস্ক্রিপ্ট ট্রিতে পোস্ট-অর্ডার ট্রাভার্সাল

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

  3. জাভাস্ক্রিপ্টে একটি লিফট দ্বারা আচ্ছাদিত মেঝেগুলির সমষ্টি খোঁজা৷

  4. জাভাস্ক্রিপ্ট ব্যবহার করে দীর্ঘতম অ-নেতিবাচক যোগফলের ক্রম খোঁজা