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

C++ प्रोग्राम: लेवल ऑर्डर ट्रैवर्सल लाइन दर लाइन प्रिंट करना


दिए गए बाइनरी ट्री में, फ़ंक्शन को ट्री के लेवल ऑर्डर ट्रैवर्सल को लाइन दर लाइन ढूंढना होगा।

लेवल ऑर्डर ट्रैवर्सल: लेफ्ट रूट राइट, जिसका अर्थ है पहले किसी नोड के बाएं बच्चे को प्रिंट करें फिर रूट का मान और फिर दाएं बच्चे पर जाएं लेकिन यहां हमें लाइन दर लाइन करना है जो दिए गए बाइनरी ट्री के बाएं नोड से शुरू होकर दाएं नोड पर समाप्त होगी।

C++ प्रोग्राम: लेवल ऑर्डर ट्रैवर्सल लाइन दर लाइन प्रिंट करना

उपरोक्त दिया गया बाइनरी ट्री निम्नलिखित आउटपुट उत्पन्न करेगा -

Level 0: 3 Level 1: 2 1 Level 2: 10 20 30

एल्गोरिदम

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 *temp = new node    temp->data = data    temp->left = temp->right= NULL    return temp step 3 -> function for inorder traversal    void levelorder(node *root)    IF root = NULL       Return    End    queue<node *> que    que.push(root)    Loop While que.empty() = false       int count = que.size()       Loop While count > 0          node *node = que.front()          print node->data          que.pop()       IF node->left != NULL          que.push(node->left)       End       IF node->right != NULL          que.push(node->right)       End       Decrement count by 1    End End Step 4 -> In main() function    Create tree using node *root = newnode(3)    Call levelorder(root) STOP

उदाहरण

#include <iostream> #include <queue> using namespace std; //it will create a node structure struct node{    struct node *left;    int data;    struct node *right; }; void levelorder(node *root){    if (root == NULL)       return;    queue<node *> que;    que.push(root);    while (que.empty() == false){       int count = que.size();       while (count > 0){          node *node = que.front();          cout << node->data << " ";          que.pop();          if (node->left != NULL)             que.push(node->left);          if (node->right != NULL)             que.push(node->right);          count--;       }    } } //it will create a new node node* newnode(int data){    node *temp = new node;    temp->data = data;    temp->left = NULL;    temp->right = NULL;    return temp; } int main(){    // it will generate the binary tree    node *root = newnode(3);    root->left = newnode(2);    root->right = newnode(1);    root->left->left = newnode(10);    root->left->right = newnode(20);    root->right->right = newnode(30);    levelorder(root);    return 0; }

आउटपुट

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

3 2 1 10 20 30

  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

  1. C++ प्रोग्राम: लेवल ऑर्डर ट्रैवर्सल लाइन दर लाइन प्रिंट करना C++ प्रोग्राम: लेवल ऑर्डर ट्रैवर्सल लाइन दर लाइन प्रिंट करना

    दिए गए बाइनरी ट्री में, फ़ंक्शन को ट्री के लेवल ऑर्डर ट्रैवर्सल को लाइन दर लाइन ढूंढना होगा। लेवल ऑर्डर ट्रैवर्सल: लेफ्ट रूट राइट, जिसका अर्थ है पहले किसी नोड के बाएं बच्चे को प्रिंट करें फिर रूट का मान और फिर दाएं बच्चे पर जाएं लेकिन यहां हमें लाइन दर लाइन करना है जो दिए गए बाइनरी ट्री के बाएं नोड