이 튜토리얼에서는 XOR이 홀수인 인접 노드의 쌍의 수를 찾는 프로그램에 대해 논의할 것입니다.
이를 위해 이진 트리가 제공됩니다. 우리의 임무는 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