इस ट्यूटोरियल में, हम आसन्न नोड्स के जोड़े की संख्या खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे जिसका एक्सओआर एक विषम संख्या है।
इसके लिए हमें एक बाइनरी ट्री प्रदान किया जाएगा। हमारा कार्य आसन्न तत्वों के युग्मों की संख्या गिनना है जिनका XOR एक विषम संख्या है।
उदाहरण
#include <iostream>
using namespace std;
//node structure of tree
struct Node {
int data;
struct Node *left, *right;
};
//finding the pairs whose XOR
//is odd
int count_pair(Node* root, Node *parent=NULL){
if (root == NULL)
return 0;
//checking pair of XOR is odd or not
int res = 0;
if (parent != NULL && (parent->data ^ root->data) % 2)
res++;
return res + count_pair(root->left, root) + count_pair(root->right, root);
}
//creation of new node
Node* newNode(int data){
Node* temp = new Node;
temp->data = data;
temp->left = NULL;
temp->right = NULL;
return temp;
}
int main(){
struct Node* root = NULL;
root = newNode(15);
root->left = newNode(13);
root->left->left = newNode(12);
root->left->right = newNode(14);
root->right = newNode(18);
root->right->left = newNode(17);
root->right->right = newNode(21);
printf("%d ", count_pair(root));
return 0;
} आउटपुट
5