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

C++ में एक बाइनरी ट्री को उसके मिरर ट्री में बदलें

इस ट्यूटोरियल में, हम एक बाइनरी ट्री को उसके मिरर ट्री में बदलने के प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें एक बाइनरी ट्री प्रदान किया जाएगा। हमारा काम दिए गए बाइनरी ट्री से मिरर ट्री बनाने के लिए बाईं और दाईं ओर के मानों को स्वैप करना होगा।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
//binary tree node structure
struct Node{
   int data;
   struct Node* left;
   struct Node* right;
};
//creation of a new node with no child nodes
struct Node* newNode(int data){
   struct Node* node = (struct Node*)malloc(sizeof(struct Node));
   node->data = data;
   node->left = NULL;
   node->right = NULL;
   return(node);
}
void mirror(struct Node* node){
   if (node == NULL)
      return;
   else{
      struct Node* temp;
      //swapping the subtrees
      mirror(node->left);
      mirror(node->right);
      temp = node->left;
      node->left = node->right;
      node->right = temp;
   }
}
//printing the inorder traversal
void print_tree(struct Node* node){
   if (node == NULL)
      return;
   print_tree(node->left);
   cout << node->data << " ";
   print_tree(node->right);
}
int main(){
   struct Node *root = newNode(1);
   root->left = newNode(2);
   root->right = newNode(3);
   root->left->left = newNode(4);
   root->left->right = newNode(5);
   //printing the initial tree
   cout << "Inorder traversal of the constructed" << endl;
   print_tree(root);
   mirror(root);
   //printing the mirror tree
   cout << "\nInorder traversal of the mirror tree" << endl;
   print_tree(root);
   return 0;
}

आउटपुट

Inorder traversal of the constructed
4 2 5 1 3
Inorder traversal of the mirror tree
3 1 5 2 4

  1. सी ++ में क्रमबद्ध सूची को बाइनरी सर्च ट्री में कनवर्ट करें

    मान लीजिए कि हमारे पास एक एकल लिंक की गई सूची है जहां तत्वों को आरोही क्रम में क्रमबद्ध किया गया है, हमें इसे ऊंचाई संतुलित बीएसटी में बदलना होगा। तो अगर सूची [-10, -3, 0, 5, 9] की तरह है, तो संभावित पेड़ इस तरह होगा - इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - यदि सूची खाली है, तो शून्य

  1. C++ में बाइनरी ट्री प्रूनिंग

    मान लीजिए कि हमारे पास एक बाइनरी ट्री का हेड नोड रूट है, जहां अतिरिक्त रूप से प्रत्येक नोड का मान या तो 0 या 1 है। हमें वही ट्री ढूंढना है जहां प्रत्येक सबट्री जिसमें 1 नहीं है, को हटा दिया गया है। तो अगर पेड़ जैसा है - इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - एक पुनरावर्ती विधि को

  1. C++ में बाइनरी सर्च ट्री में डालें

    मान लीजिए कि हमारे पास एक बाइनरी सर्च ट्री है। हमें केवल एक विधि लिखनी है, जो एक पैरामीटर के रूप में दिए गए नोड के साथ सम्मिलन ऑपरेशन करती है। हमें यह ध्यान रखना होगा कि ऑपरेशन के बाद पेड़ बीएसटी भी रहेगा। तो अगर पेड़ जैसा है - अगर हम 5 डालें, तो पेड़ होगा - इसे हल करने के लिए, हम इन चरणों का