Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- struct Node {
- int value;
- int left;
- int right;
- };
- struct Tree {
- int key;
- Tree *left;
- Tree *right;
- };
- Node arr[200001];
- void display(Tree *root) {
- if (root != NULL) {
- display(root->left);
- display(root->right);
- cout << root->key << ' ';
- }
- }
- void insertNode (Tree *&root, int i) {
- if (root == NULL) {
- Tree *temp = new Tree;
- root = temp;
- temp->key = arr[i].value;
- temp->left = temp->right = NULL;
- }
- if (arr[i].left != 0) {
- Tree *tempLeft = new Tree;
- root->left = tempLeft;
- tempLeft->key = arr[arr[i].left].value;
- }
- if (arr[i].right != 0) {
- Tree *tempRight = new Tree;
- root->right = tempRight;
- tempRight->key = arr[arr[i].right].value;
- }
- insertNode (root->left, arr[i].left);
- insertNode (root->right, arr[i].right);
- }
- int main()
- {
- Tree *root = NULL;
- int n;
- cin >> n;
- int key1, key2, key3;
- for(int i = 1; i < n + 1; i++) {
- cin >> key1;
- arr[i].value = key1;
- cin >> key2;
- arr[i].left = key2;
- cin >> key3;
- arr[i].right = key3;
- }
- insertNode(root, 1);
- display(root);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement