Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm số cặp nút liền kề có XOR là một số lẻ.
Đối với điều này, chúng tôi sẽ được cung cấp một cây nhị phân. Nhiệm vụ của chúng ta là đếm số cặp phần tử liền kề có XOR là số lẻ.
Ví dụ
#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; }
Đầu ra
5