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

C++ प्रोग्राम: ट्री के विषम लेवल पर नोड्स प्रिंट करना


दिए गए बाइनरी ट्री में, प्रोग्राम को ट्री के विषम लेवल पर नोड्स प्रिंट करने होंगे और बाइनरी ट्री के लेवल 1 से n तक शुरू होते हैं।

चूंकि कुछ उल्लेख नहीं है, दो दृष्टिकोणों में से एक को लागू किया जा सकता है यानी रिकर्सन या इटरेशन।

चूंकि हम एक रिकर्सिव दृष्टिकोण का उपयोग कर रहे हैं, प्रोग्राम एक फ़ंक्शन को रिकर्सिव कॉल करेगा जो विषम लेवल पर नोड्स लाएगा और उन्हें वापस करेगा।

C++ प्रोग्राम: ट्री के विषम लेवल पर नोड्स प्रिंट करना

उपरोक्त बाइनरी ट्री में -

Nodes at level 1: 10 Nodes at level 2: 3 and 211 Nodes at level 3: 140, 162, 100 and 146

तो, लेवल 1 और लेवल 3 पर नोड्स प्रिंट होंगे यानी आउटपुट 10, 140, 162, 100 और 146 होगा।

एल्गोरिदम

START Step 1 -> create a structure of a node as    struct Node       struct node *left, *right       int data    End Step 2 -> function to create a node    node* newnode(int data)    node->data = data    node->left = node->right = NULL;    return (node) step 3 -> create function for finding the odd nodes    void odd(Node *root, bool ifodd = true)    IF root = NULL       Return    End    if (ifodd)       print root->data    End    odd(root->left, !ifodd)    odd(root->right, !ifodd) step 4 -> In main()    Create tree using Node* root = newnode(45)    root->left = newnode(23)    Call odd(root) Stop

उदाहरण

#include <bits/stdc++.h> using namespace std; struct Node{    int data;    Node* left, *right; }; void odd(Node *root, bool ifodd = true){    if (root == NULL)       return;    if (ifodd)       cout << root->data << " " ;    odd(root->left, !ifodd);    odd(root->right, !ifodd); } // function to create a new node Node* newnode(int data){    Node* node = new Node;    node->data = data;    node->left = node->right = NULL;    return (node); } int main(){    Node* root = newnode(45);    root->left = newnode(23);    root->right = newnode(13);    root->left->left = newnode(24);    root->left->right = newnode(85);    cout<<"\nodd nodes are ";    odd(root);    return 0; }

आउटपुट

यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा

odd nodes are 45 24 85

  1. C++ प्रोग्राम: बाइनरी ट्री में पहला सबसे छोटा रूट-टू-लीफ पथ प्रिंट करना C++ प्रोग्राम: बाइनरी ट्री में पहला सबसे छोटा रूट-टू-लीफ पथ प्रिंट करना

    दिए गए बाइनरी ट्री में प्रोग्राम को दिए गए कई पथों में से रूट से लीफ तक का सबसे छोटा पथ ढूंढना होगा। चूंकि हम ट्री को बाएं से दाएं ट्रैवर्स करते हैं, इसलिए यदि रूट से लीफ तक कई सबसे छोटे पथ हैं तो प्रोग्राम ट्री के बाएं तरफ पहले ट्रैवर्स किए गए सबसे छोटे पथ को प्रिंट करेगा। हम एक कतार (queue) का उपय

  1. C++ प्रोग्राम: बाइनरी ट्री में सभी नोड्स के लेवल प्रिंट करना C++ प्रोग्राम: बाइनरी ट्री में सभी नोड्स के लेवल प्रिंट करना

    दिए गए बाइनरी ट्री में, कार्य 1 से n तक शुरू होने वाले प्रत्येक कुंजी से जुड़े लेवल को प्रिंट करना है जो एक नोड में संग्रहीत है। उपरोक्त ट्री में नोड्स हैं - 10 at level 1 3 and 211 at level 2 140, 162, 100 and 146 at level 3 दिए गए कुंजी के लिए प्रोग्राम को उस विशेष कुंजी का लेवल प्रिंट करना होगा।

  1. C++ प्रोग्राम: बाइनरी ट्री के प्रत्येक नोड में सेट बिट्स की संख्या प्रिंट करना C++ प्रोग्राम: बाइनरी ट्री के प्रत्येक नोड में सेट बिट्स की संख्या प्रिंट करना

    दिए गए बाइनरी ट्री में, फ़ंक्शन नोड्स में संग्रहीत कुंजियों के बाइनरी मान उत्पन्न करेगा और फिर उस बाइनरी समतुल्य में सेट बिट्स (1) की संख्या लौटाएगा। उदाहरण बाइनरी ट्री जिसमें कुंजियां हैं: 10 3 211 140 162 100 और 146 कुंजी बाइनरी समतुल्य सेट बिट्स (आउटपुट) 10 1010 2 3 0011 2 211 1101001