इस ट्यूटोरियल में, हम सीखेंगे कि दिए गए पेड़ को दोगुना कैसे करें।
आइए समस्या को हल करने के लिए चरणों को देखें।
-
नोड वर्ग बनाएं।
-
डमी डेटा के साथ ट्री को इनिशियलाइज़ करें।
-
पेड़ को दोगुना करने के लिए एक पुनरावर्ती कार्य लिखें।
-
पेड़ के माध्यम से पुनरावर्ती रूप से पार करें।
-
लेफ्ट नोड को एक वेरिएबल में स्टोर करें।
-
ट्रैवर्सिंग के बाद एक नया नोड बनाकर डेटा जोड़ें।
-
अब, बाएं नोड को बाएं बच्चे के रूप में नए बनाए गए नोड में जोड़ें।
-
-
पेड़ को प्रिंट करें।
उदाहरण
आइए कोड देखें।
#include <bits/stdc++.h> using namespace std; class node { public: int data; node* left; node* right; }; node* newNode(int data) { node* Node = new node(); Node->data = data; Node->left = NULL; Node->right = NULL; return Node; } void doubleTree(node* Node) { node* oldLeft; if (Node == NULL) return; doubleTree(Node->left); doubleTree(Node->right); oldLeft = Node->left; Node->left = newNode(Node->data); Node->left->left = oldLeft; } void printTree(node* node) { if (node == NULL) { return; } printTree(node->left); cout << node->data << " "; printTree(node->right); } int main() { node *root = newNode(1); root->left = newNode(2); root->right = newNode(3); cout << "Original Tree" << endl; printTree(root); cout << endl; doubleTree(root); cout << "Double Tree" << endl; printTree(root); cout << endl; return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
Original Tree 2 1 3 Double Tree 2 2 1 1 3 3
निष्कर्ष
यदि ट्यूटोरियल में आपके कोई प्रश्न हैं, तो उनका टिप्पणी अनुभाग में उल्लेख करें।