Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- struct treeNode {
- int data;
- treeNode* left;
- treeNode* right;
- };
- treeNode* newNode(int data) {
- treeNode* node = new treeNode;
- node->data = data;
- node->left = NULL;
- node->right = NULL;
- return node;
- }
- void printInOrder(treeNode* node) {
- if (node == NULL)
- return;
- printInOrder(node->left);
- cout << node->data << " ";
- cout.flush();
- printInOrder(node->right);
- }
- bool insertNode(treeNode* current_node, int& v, int& data, char& c) {
- while (true) {
- if (current_node == NULL) {
- return false;
- }
- if (current_node->data == v) {
- if (c == 'L') {
- current_node->left = newNode(data);
- }
- else {
- current_node->right = newNode(data);
- }
- return true;
- }
- if (insertNode(current_node->left, v, data, c)) {
- return true;
- }
- if (insertNode(current_node->right, v, data, c)) {
- return true;
- }
- }
- }
- //1
- //4
- //10 20 L 10 30 R 20 40 L 20 60 R
- //1
- //2
- //1 2 R 1 3 L
- //1
- //6
- //10 20 L 10 30 R 20 40 L 20 60 R 30 50 L 30 70 R
- int main() {
- int T;
- cin >> T;
- for (int i = 0; i < T; i++) {
- int n;
- cin >> n;
- treeNode* root = NULL;
- for (int j = 0; j < n; j++) {
- int v, data;
- char c;
- cin >> v >> data >> c;
- if (j == 0) {
- root = newNode(v);
- }
- insertNode(root, v, data, c);
- }
- printInOrder(root);
- cout << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement