用 C++ 计算相邻两个节点的 XOR 为奇数的所有的成对节点数量
本教程将介绍一个程序,用于找出 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
广告