Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में n-ary ट्री में दिए गए मान से बड़े नोड्स की संख्या


एक n-ary ट्री और एक संख्या दी गई है, हमें दिए गए नंबर से बड़े नोड्स की संख्या गिननी है। आइए एक उदाहरण देखते हैं।

इनपुट

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

आउटपुट

3

n से बड़े मान वाले 3 नोड्स हैं।

एल्गोरिदम

  • n-ary ट्री को आरंभ करें।
  • काउंट को 0 पर आरंभ करें।
  • जब आपको कोई नोड मिले जिसका मान n से बड़ा है तो काउंट को 1 से बढ़ाएं।
  • वर्तमान नोड के बच्चे प्राप्त करें।
  • सभी बच्चों पर पुनरावृति करें और नोड्स गिनने के लिए समान फंक्शन को रिकर्सिवली कॉल करें।
  • काउंट लौटाएं।

कार्यान्वयन

उपरोक्त एल्गोरिदम का 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 ट्री को पार करने के तरीकों की संख्या C++ में N-ary ट्री को पार करने के तरीकों की संख्या

    एक N-ary ट्री दिया गया है और हमें इस ट्री को पार करने के कुल तरीकों की संख्या निकालने का कार्य दिया गया है, उदाहरण के लिए -उपरोक्त ट्री के लिए, हमारा आउटपुट 192 होगा।इस समस्या के लिए, हमें कॉम्बिनेटोरिक्स के बारे में कुछ ज्ञान होना चाहिए। अब इस समस्या में, हमें बस हर पथ के लिए सभी संभावित संयोजनों क

  1. C++ में BST नोड्स गिनना जो दी गई रेंज में हैं C++ में BST नोड्स गिनना जो दी गई रेंज में हैं

    हमें नोड्स से बना एक बाइनरी सर्च ट्री दिया गया है और एक रेंज भी दी गई है और कार्य उन नोड्स की संख्या की गणना करना है जो दी गई रेंज में हैं और परिणाम प्रदर्शित करना है। एक बाइनरी सर्च ट्री (BST) एक ट्री है जिसमें सभी नोड्स नीचे उल्लिखित गुणों का पालन करते हैं: एक नोड का बायां सबट्री उस नोड की कुंजी

  1. C++ में रिकर्सन के बिना N-एरी ट्री का प्रीऑर्डर ट्रैवर्सल C++ में रिकर्सन के बिना N-एरी ट्री का प्रीऑर्डर ट्रैवर्सल

    इस समस्या में, हमें एक N-एरी ट्री दिया गया है। हमारा कार्य ट्री का प्रीऑर्डर ट्रैवर्सल प्रिंट करना है।पहले, आइए कुछ बुनियादी शब्दावली सीखें,N-एरी ट्री एक ट्री है जिसमें सभी नोड्स में अधिकतम N चाइल्ड नोड्स हो सकते हैं। उदाहरण 2-एरी (बाइनरी) ट्री में अधिकतम 2 चाइल्ड नोड्स होते हैं।प्रीऑर्डर ट्रैवर्सल