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;
- while (current != NULL) {
- if (current->right != NULL) {
- total = total + right->value;
- }
- if (current->left != NULL) {
- total = total + left->value;
- }
- }
- total = total + current->value;
- return total;
- // 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