Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cmath>
- #include <cstdio>
- #include <vector>
- #include <iostream>
- #include <algorithm>
- using namespace std;
- struct Node{
- Node* right = nullptr;
- Node* left = nullptr;
- int value;
- Node(int value) : value(value){}
- };
- struct Tree{
- Node* root = nullptr;
- void addNode(int num, Node* curr){
- if(num == curr->value)
- return;
- if(curr->value > num){
- if(curr->left)
- addNode(num, curr->left);
- else
- curr->left = new Node(num);
- }
- else{
- if(curr->right)
- addNode(num, curr->right);
- else
- curr->right = new Node(num);
- }
- }
- void add(int num){
- if(!root){
- root = new Node(num);
- return;
- }
- addNode(num, root);
- }
- void print(Node* curr){
- if(!curr){
- return;
- }
- cout << curr->value << " ";
- print(curr->left);
- print(curr->right);
- }
- };
- int main() {
- Tree tree;
- int n;
- string command;
- int a;
- cin >> n;
- for(int i = 0; i < n; i++){
- cin >> command;
- if(command == "add"){
- cin >> a;
- tree.add(a);
- }
- else{
- tree.print(tree.root);
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment