Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class node
- {
- int value;
- node* left;
- node* right;
- public:
- node(int value, node* left, node* right)
- {
- this->value = value;
- this->left = left;
- this->right = right;
- }
- void add(int value)
- {
- if (value < this->value)
- {
- if (left == nullptr)
- left = new node(value, nullptr, nullptr);
- else
- left->add(value);
- }
- else
- {
- if (right == nullptr)
- right = new node(value, nullptr, nullptr);
- else
- right->add(value);
- }
- }
- void print()
- {
- if (left != nullptr) left->print();
- cout << value << " ";
- if (right != nullptr) right->print();
- }
- //Return the sum of all the numbers in the tree
- int sum()
- {
- // Your code starts here
- //node* current = this;
- int total = 0;
- int leftSum = 0;
- int rightSum = 0;
- if (this->left != nullptr) {
- total = total + left->sum();
- }
- if (this->right != nullptr) {
- total = total + right->sum();
- }
- return total + this->value;
- //if (this == NULL) {
- // return 0;
- //}
- //if (this->left == nullptr && this->right == nullptr) {
- // return this->value;
- //}
- //else {
- // if (this->left != nullptr) {
- // right->sum();
- // }
- // else {
- // left->sum();
- // }
- //}
- //if (this == NULL) {
- // return 0;
- // }
- //if (left != nullptr) {
- // int leftSum;
- // leftSum = left->value;
- //}
- //if (right != nullptr) {
- // rightSum = right->value;
- //}
- //total = this->value + leftSum + rightSum;
- //return total;
- //if (left != nullptr) left->sum();
- //total = this->value + total;
- //if (right != nullptr) right->sum();
- //return total;
- // Your code ends here
- //if (left != nullptr) {
- // current->left;
- // leftSum = leftSum + left->value;
- // left->sum();
- //}
- //if (right != nullptr) {
- // current->right;
- // rightSum = rightSum + right->value;
- // right->sum();
- //}
- //return total + leftSum + rightSum + current->value;
- //int leftSum = left->sum();
- //int rightSum = right->sum();
- //if (left == nullptr && right == nullptr) {
- // return total + current->value;
- //}
- //if (left == nullptr) {
- //current->right;
- //}
- //if (right == nullptr ) {
- // current->left;
- //}
- //return total + right->value + left->value + current->value;
- //if (left != nullptr) left->sum();
- //else {}
- //total = total + leftSum;
- //current->left;
- //if (right != nullptr )right->sum();
- //else {}
- //total = total + rightSum;
- //current->right;
- //return total + current->value;
- // Your code ends here
- }
- //Prints all the leaves in the tree (i.e. nodes that have no children)
- void print_leaves()
- {
- // Your code starts here
- node* current = this;
- if (!current->left && !current->right) {
- cout << current->value << " ";
- }
- // Your code ends here
- }
- //Finds the largest number in the tree
- int max()
- {
- // Your code starts here
- node* current = this;
- int max = 0;
- if (!current->left && !current->right) {
- if (max < current->value) {
- max = current->value;
- }
- }
- return max;
- // Your code ends here
- }
- };
- //After
- int main() {
- node* root = new node(1, NULL, NULL);
- root->add(5);
- root->add(10);
- root->add(11);
- root->add(100);
- root->add(11);
- cout << root->sum();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement