কম্পিউটার

একটি বাইনারি গাছের সমস্ত অভ্যন্তরীণ নোড C++ এ প্রিন্ট করুন


এই সমস্যায়, আমাদের একটি বাইনারি ট্রি দেওয়া হয়েছে এবং আমাদের বাইনারি গাছের সমস্ত অভ্যন্তরীণ নোড প্রিন্ট করতে হবে৷

বাইনারী গাছ একটি গাছ যেখানে একটি নোডে সর্বাধিক 2টি চাইল্ড নোড থাকতে পারে। নোড বা শীর্ষবিন্দুতে কোনো নোড থাকতে পারে না, একটি চাইল্ড বা দুটি চাইল্ড নোড।

উদাহরণ

একটি বাইনারি গাছের সমস্ত অভ্যন্তরীণ নোড C++ এ প্রিন্ট করুন

অভ্যন্তরীণ নোড একটি নোড যাতে কমপক্ষে একটি শিশু থাকতে পারে অর্থাৎ নন-লিফ নোড হল একটি অভ্যন্তরীণ নোড৷

সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক -

একটি বাইনারি গাছের সমস্ত অভ্যন্তরীণ নোড C++ এ প্রিন্ট করুন

আউটপুট − 7 4 9

এই সমস্যা সমাধানের জন্য, আমরা BFS(প্রস্থ-প্রথম অনুসন্ধান) ট্রাভার্সাল ব্যবহার করে বাইনারি ট্রিটি অতিক্রম করব।

ট্রাভার্সাল করার সময় আমরা নোডগুলিকে একটি সারিতে ঠেলে দেব। যখন আমরা সারি থেকে উপাদানগুলি পপ করি, তখন আমরা গাছের সমস্ত নোড প্রিন্ট করব যেগুলিতে কোনও চাইল্ড নোড নেই৷

উদাহরণ

আমাদের যুক্তি নিচের কোড দ্বারা বাস্তবায়িত হয় −

#include <bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   Node *left, *right;
   Node(int data){
      left = right = NULL;
      this->data = data;
   }
};
void printNonLeafNodes(Node* root) {
   queue<Node*> treeNodes;
   treeNodes.push(root);
   while (!treeNodes.empty()) {
      Node* curr = treeNodes.front();
      treeNodes.pop();
      bool isInternal = 0;
      if (curr->left) {
         isInternal = 1;
         treeNodes.push(curr->left);
      }
      if (curr->right) {
         isInternal = 1;
         treeNodes.push(curr->right);
      }
      if (isInternal)
         cout<<curr->data<<"\t";
   }
}
int main() {
   Node* root = new Node(43);
   root->left = new Node(12);
   root->right = new Node(78);
   root->left->left = new Node(4);
   root->right->left = new Node(9);
   root->right->right = new Node(1);
   root->right->right->right = new Node(50);
   root->right->right->left = new Node(25);
   cout<<"All internal Nodes of the binary tree are :\n";
   printNonLeafNodes(root);
   return 0;
}

আউটপুট

All internal Nodes of the binary tree are −
43 12 78 1

  1. C++-এ K পাতা সহ একটি বাইনারি ট্রিতে সমস্ত নোড প্রিন্ট করুন

  2. C++ এ বাইনারি সার্চ ট্রির সমস্ত বিজোড় নোড প্রিন্ট করুন

  3. বাইনারি গাছের নোডগুলি প্রিন্ট করুন যেহেতু তারা C++ প্রোগ্রামিং-এ লিফ নোড হয়ে যায়।

  4. C++ প্রোগ্রামিং-এ একটি বাইনারি ট্রিতে সমস্ত নোডের লেভেল প্রিন্ট করুন।