इस ट्यूटोरियल में, हम किसी दिए गए बाइनरी ट्री को लॉजिकल और प्रॉपर्टी रखने वाले ट्री में बदलने के प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें एक बाइनरी ट्री प्रदान किया जाएगा। हमारा काम इसे एक पेड़ में बदलना है जो तार्किक और संपत्ति रखता है जिसका अर्थ है कि एक नोड का अपने बच्चों के नोड्स के और संचालन का मूल्य है। ध्यान दें कि प्रत्येक नोड का मान शून्य या एक हो सकता है।
उदाहरण
#include<bits/stdc++.h> using namespace std; //node structure of binary tree struct Node{ int data; struct Node* left; struct Node* right; }; //creation of a new node struct Node* newNode(int key){ struct Node* node = new Node; node->data= key; node->left = node->right = NULL; return node; } //converting the tree with nodes following //logical AND operation void transform_tree(Node *root){ if (root == NULL) return; //moving to first left node transform_tree(root->left); //moving to first right node transform_tree(root->right); if (root->left != NULL && root->right != NULL) root->data = (root->left->data) & (root->right->data); } //printing the inorder traversal void print_tree(Node* root){ if (root == NULL) return; print_tree(root->left); printf("%d ", root->data); print_tree(root->right); } int main(){ Node *root=newNode(0); root->left=newNode(1); root->right=newNode(0); root->left->left=newNode(0); root->left->right=newNode(1); root->right->left=newNode(1); root->right->right=newNode(1); printf("Before conversion :\n"); print_tree(root); transform_tree(root); printf("\nAfter conversion :\n"); print_tree(root); return 0; }
आउटपुट
Before conversion : 0 1 1 0 1 0 1 After conversion : 0 0 1 0 1 1 1