কম্পিউটার

C++ এ n-ary ট্রিতে প্রদত্ত মানের চেয়ে বড় নোডের সংখ্যা


একটি n-ary গাছ এবং একটি সংখ্যা দেওয়া হলে, আমাদের প্রদত্ত সংখ্যার চেয়ে বড় নোডের সংখ্যা গণনা করতে হবে। আসুন একটি উদাহরণ দেখি।

ইনপুট

tree = [[4], [1, 2], [3, 5]]
n = 2

আউটপুট

3

n-এর চেয়ে বড় মান সহ 3টি নোড রয়েছে।

অ্যালগরিদম

  • এন-আরি ট্রি শুরু করুন।

  • গণনা শুরু করুন 0।

  • 1 দ্বারা গণনা বৃদ্ধি করুন যখন আপনি একটি নোড খুঁজে পান যার মান n এর চেয়ে বেশি।

  • বর্তমান নোডের শিশুদের পান।

  • সমস্ত শিশুর উপর পুনরাবৃত্তি করুন এবং নোড গণনা করতে একই ফাংশনকে বারবার কল করুন।

  • গণনা ফেরত দিন।

বাস্তবায়ন

C++

-এ উপরের অ্যালগরিদমের বাস্তবায়ন নিচে দেওয়া হল
#include <bits/stdc++.h>
using namespace std;
struct Node {
   int data;
   vector<Node*> child;
};
Node* getNewNode(int data) {
   Node* temp = new Node;
   temp->data = data;
   return temp;
}
int getGreaterElementsCount(Node* root, int n) {
   if (root == NULL)
      return 0;
   int count = 0;
   if (root->data > n) {
      count++;
   }
   int nodeChildrenCount = root->child.size();
   for (int i = 0; i < nodeChildrenCount; i++) {
      Node* child = root->child[i];
      count += getGreaterElementsCount(child, n);
   }
   return count;
}
int main() {
   Node* root = getNewNode(1);
   (root->child).push_back(getNewNode(2));
   (root->child).push_back(getNewNode(3));
   (root->child).push_back(getNewNode(4));
   (root->child[0]->child).push_back(getNewNode(5));
   (root->child[0]->child).push_back(getNewNode(5));
   (root->child[1]->child).push_back(getNewNode(6));
   (root->child[1]->child).push_back(getNewNode(6));
   (root->child[1]->child).push_back(getNewNode(7));
   (root->child[2]->child).push_back(getNewNode(8));
   (root->child[2]->child).push_back(getNewNode(8));
   (root->child[2]->child).push_back(getNewNode(9));
   int n = 2;
   cout << getGreaterElementsCount(root, n) << endl;
   return 0;
}

আউটপুট

আপনি যদি উপরের কোডটি চালান, তাহলে আপনি নিম্নলিখিত ফলাফল পাবেন।

10

  1. C++ ব্যবহার করে একটি N-ary ট্রি অতিক্রম করার উপায়ের সংখ্যা খুঁজুন

  2. C++ এ একটি প্রদত্ত পরিসরে থাকা BST নোডগুলি গণনা করুন

  3. C++ এ পুনরাবৃত্তি ছাড়াই N-ary গাছের প্রি-অর্ডার ট্রাভার্সাল

  4. C++ ব্যবহার করে প্রদত্ত উচ্চতা সহ একটি AVL গাছে নোডের ন্যূনতম সংখ্যা।