Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ค้นหาสูงสุด (หรือต่ำสุด) ใน Binary Tree ใน C ++


ในปัญหานี้ เราได้รับไบนารีทรี งานของเราคือ ค้นหาสูงสุด (หรือต่ำสุด) ในไบนารีทรี

คำอธิบายปัญหา: เราจำเป็นต้องค้นหาโหนดของไบนารีทรีที่มีค่าสูงสุดและต่ำสุดในไบนารีทรี

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

ป้อนข้อมูล:

ค้นหาสูงสุด (หรือต่ำสุด) ใน Binary Tree ใน C ++

ผลลัพธ์: สูงสุด =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