इस समस्या में हमें एक बाइनरी ट्री दिया जाता है। हमारा काम बाइनरी ट्री में अधिकतम (या न्यूनतम) खोजना है।
समस्या का विवरण: हमें बाइनरी ट्री के उन नोड्स को खोजने की आवश्यकता है जिनका बाइनरी ट्री में अधिकतम और न्यूनतम मान है।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट:
<मजबूत>
आउटपुट: अधिकतम =9 , न्यूनतम =1
समाधान दृष्टिकोण
हमें बाइनरी ट्री के अधिकतम नोड को खोजने की आवश्यकता है। जब तक हम लीफ नोड तक नहीं पहुंच जाते और फिर पेड़ का अधिकतम नोड नहीं ढूंढ लेते, तब तक हम पॉइंटर को ट्रेस करके ऐसा करेंगे।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला कार्यक्रम,
उदाहरण
#include <iostream> using namespace std; class Node { public: int data; Node *left, *right; Node(int data) { this->data = data; this->left = NULL; this->right = NULL; } }; int findMaxNode(Node* root) { if (root == NULL) return -100; int maxVal = root->data; int leftMaxVal = findMaxNode(root->left); int rightMaxVal = findMaxNode(root->right); if (leftMaxVal > maxVal) maxVal = leftMaxVal; if (rightMaxVal > maxVal) maxVal = rightMaxVal; return maxVal; } int main() { Node* NewRoot = NULL; Node* root = new Node(5); root->left = new Node(3); root->right = new Node(2); root->left->left = new Node(1); root->left->right = new Node(8); root->right->left = new Node(6); root->right->right = new Node(9); cout<<"The Maximum element of Binary Tree is "<<findMaxNode(root) << endl; return 0; }
आउटपुट
The Maximum element of Binary Tree is 9