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

ผลรวมของพาเรนต์พาเรนต์สูงสุดในทรีไบนารีใน C ++


ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมเพื่อค้นหาผลรวมของ parent child สูงสุดในไบนารีทรี

สำหรับสิ่งนี้เราจะได้รับไบนารีทรี งานของเราคือการเพิ่มโหนดหลักด้วยโหนดย่อยและค้นหาค่าสูงสุดของโหนดทั้งหมดและพิมพ์ออกมา

ตัวอย่าง

#include <iostream>
using namespace std;
struct Node {
   int data;
   struct Node *left, *right;
};
//inserting nodes
struct Node* newNode(int n) {
   struct Node* root = new Node();
   root->data = n;
   root->left = root->right = NULL;
   return root;
}
int maxSum(struct Node* root) {
   if (root == NULL)
      return 0;
   int res = maxSum(root->left);
   if (root->left != NULL && root->right != NULL) {
      int sum = root->data + root->left->data + root->right->data;
      res = max(res, sum);
   }
   return max(res, maxSum(root->right));
}
int main() {
   struct Node* root = newNode(15);
   root->left = newNode(16);
   root->left->left = newNode(8);
   root->left->left->left = newNode(55);
   root->left->right = newNode(67);
   root->left->right->left = newNode(44);
   root->right = newNode(17);
   root->right->left = newNode(7);
   root->right->left->right = newNode(11);
   root->right->right = newNode(41);
   cout << maxSum(root);
   return 0;
}

ผลลัพธ์

91