এই সমস্যায় একটি বাইনারি সার্চ ট্রি দেওয়া আছে। আমাদের বাইনারি সার্চ ট্রির সব জোড় মান যুক্ত নোড প্রিন্ট করতে হবে।
বাইনারি সার্চ ট্রি হলো একটি বাইনারি ট্রি যা নিচের শর্তগুলো মেনে চলে:
- বাম সাব-ট্রি সবসময় পেরেন্ট নোড থেকে ছোট মান ধারণ করে।
- ডান সাব-ট্রি সবসময় পেরেন্ট নোড থেকে বড় মান ধারণ করে।
- সব নোডকে উপরের ২টি নিয়ম মানতে হবে।
উদাহরণ

আউটপুট - 2 4 6 8
এই সমস্যাটি সমাধানের জন্য বাইনারি সার্চ ট্রির সব নোড ট্রাভার্স করতে হবে এবং বর্তমান নোডের মান চেক করতে হবে। যদি জোড় হয় তবে নোডটি প্রিন্ট করা হবে অন্যথায় চলে যাওয়া হবে।
বাস্তবায়ন
#include <iostream>
using namespace std;
struct Node {
int key;
struct Node *left, *right;
};
Node* newNode(int item) {
Node* temp = new Node;
temp->key = item;
temp->left = temp->right = NULL;
return temp;
}
Node* insertNode(Node* node, int key) {
if (node == NULL)
return newNode(key);
if (key < node->key)
node->left = insertNode(node->left, key);
else
node->right = insertNode(node->right, key);
return node;
}
void printEvenNode(Node* root) {
if (root != NULL) {
printEvenNode(root->left);
if (root->key % 2 == 0)
cout << root->key << "\t";
printEvenNode(root->right);
}
}
int main() {
Node* root = NULL;
root = insertNode(root, 54);
root = insertNode(root, 43);
root = insertNode(root, 12);
root = insertNode(root, 30);
root = insertNode(root, 89);
root = insertNode(root, 67);
root = insertNode(root, 80);
cout << "All even nodes of the tree are :\n";
printEvenNode(root);
return 0;
}
আউটপুট
All even nodes of the tree are : 12 30 54 80