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

C++ में पुनरावृत्त दृष्टिकोण का उपयोग करते हुए बायें से दायें बायने से दायें बायनेरी ट्री के सभी लीफ नोड्स को प्रिंट करें


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

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं

इनपुट -

C++ में पुनरावृत्त दृष्टिकोण का उपयोग करते हुए बायें से दायें बायने से दायें बायनेरी ट्री के सभी लीफ नोड्स को प्रिंट करें

आउटपुट - 1 4 7

पुनरावृत्त दृष्टिकोण का उपयोग करके इस समस्या को हल करने के लिए, हम गहराई-प्रथम खोज (डीएफएस) का उपयोग करेंगे। ट्रैवर्स ट्री के लिए, हम रूट नोड से शुरू करेंगे और जांचेंगे कि क्या यह लीफ नोड है यदि यह है तो नोड को प्रिंट करें अन्यथा इसके चाइल्ड ट्री को ढूंढें और सभी लीफ नोड्स को खोजने के लिए चाइल्ड सबट्री को ट्रैस करें।

उदाहरण

नीचे दिया गया कोड हमारे समाधान को लागू करेगा -

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *left, *right;
};
Node* insertNode(int data) {
   Node *temp = new Node;
   temp->data = data;
   temp->left = temp->right = NULL;
   return temp;
}
void printLTRLeafNodes(Node *root){
   if (!root)
      return;
   if (!root->left && !root->right) {
      cout<<root->data<<"\t";
      return;
   }
   if (root->left)
      printLTRLeafNodes(root->left);
   if (root->right)
      printLTRLeafNodes(root->right);
}
int main(){
   Node *root = insertNode(21);
   root->left = insertNode(5);
   root->right = insertNode(36);
   root->left->left = insertNode(2);
   root->right->left = insertNode(13);
   root->right->right = insertNode(4);
   root->right->left->left = insertNode(76);
   root->right->left->right = insertNode(9);
   root->right->right->left = insertNode(17);
   root->right->right->right = insertNode(2);
   cout<<"Leaf Nodes of the tree from left to rigth are :\n";
   printLTRLeafNodes(root);
   return 0;
}

आउटपुट

Leaf Nodes of the tree from left to right are −
2 76 9 17 2
. हैं
  1. बाइनरी सर्च ट्री के सभी विषम नोड्स को C++ में प्रिंट करें

    इस समस्या में, हमें एक बाइनरी सर्च ट्री दिया जाता है और हमें उन सभी नोड्स को प्रिंट करना होता है जिनमें विषम मान होते हैं। बाइनरी सर्च ट्री एक विशेष प्रकार का पेड़ है जिसमें निम्नलिखित गुण होते हैं - लेफ्ट सबट्री में हमेशा रूट नोड से छोटे मान होते हैं। राइट सबट्री में हमेशा रूट नोड से बड़े मा

  1. C++ प्रोग्रामिंग में एक बाइनरी ट्री में सभी नोड्स के प्रिंट स्तर।

    बाइनरी ट्री को देखते हुए, कार्य 1 से n तक के नोड में संग्रहीत प्रत्येक कुंजी से जुड़े स्तर को प्रिंट करना है उपरोक्त पेड़ में, नोड्स हैं - 10 लेवल 13 पर और 211 लेवल 2140 पर, 162, 100 और 146 लेवल 3 पर कुंजी को देखते हुए प्रोग्राम को उस विशेष कुंजी के स्तर को प्रिंट करना होगा। उदाहरण एल्गोरिदम न

  1. C++ में एक स्टैक का उपयोग करके बाएं से दाएं बाइनरी ट्री में लीफ नोड्स प्रिंट करें

    प्रोग्राम को बाइनरी ट्री के लीफ नोड्स को बाएं से दाएं प्रिंट करना चाहिए, लेकिन चुनौती में केवल एक स्टैक का उपयोग करना शामिल है पुश () फ़ंक्शन के माध्यम से एक बाइनरी ट्री के नोड्स डालें और पॉप () ऑपरेशन के माध्यम से लीफ नोड्स प्रदर्शित करें। लीफ नोड्स अंतिम नोड होते हैं जिनके बाएँ और दाएँ पॉइंटर NU