इस समस्या में, हमें एक बाइनरी सर्च ट्री दी गई है। हमारा कार्य बाइनरी सर्च ट्री के सभी सम मान वाले नोड्स प्रिंट करना है।
बाइनरी सर्च ट्री
बाइनरी सर्च ट्री एक बाइनरी ट्री है जो निम्नलिखित शर्तों का पालन करता है:
- बायां सब-ट्री हमेशा पैरेंट नोड से छोटे मान वाले नोड्स रखता है।
- दायां सब-ट्री हमेशा पैरेंट नोड से बड़े मान वाले नोड्स रखता है।
- सभी नोड्स को उपरोक्त 2 नियमों का पालन करना होगा।
उदाहरण

आउटपुट - 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