Advertisement
TwITe

Untitled

Jan 23rd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. struct treeNode {
  5.     int data;
  6.     treeNode* left;
  7.     treeNode* right;
  8. };
  9.  
  10. treeNode* newNode(int data) {
  11.     treeNode* node = new treeNode;
  12.  
  13.     node->data = data;
  14.     node->left = NULL;
  15.     node->right = NULL;
  16.  
  17.     return node;
  18. }
  19.  
  20. void printInOrder(treeNode* node) {
  21.     if (node == NULL)
  22.         return;
  23.  
  24.     printInOrder(node->left);
  25.  
  26.     cout << node->data << " ";
  27.     cout.flush();
  28.  
  29.     printInOrder(node->right);
  30. }
  31.  
  32. bool inserted;
  33. void insertNode(treeNode* current_node, int& v, int& data, char& c) {
  34.     if (!inserted) {
  35.         if (current_node == NULL) {
  36.             return;
  37.         }
  38.         if (current_node->data == v) {
  39.             if (c == 'L') {
  40.                 current_node->left = newNode(data);
  41.             }
  42.             else {
  43.                 current_node->right = newNode(data);
  44.             }
  45.             inserted = true;
  46.             return;
  47.         }
  48.  
  49.         insertNode(current_node->left, v, data, c);
  50.         insertNode(current_node->right, v, data, c);
  51.     }
  52.     else {
  53.         return;
  54.     }
  55. }
  56.  
  57. int main() {
  58.     int T;
  59.     cin >> T;
  60.  
  61.     for (int i = 0; i < T; i++) {
  62.         int n;
  63.         cin >> n;
  64.         treeNode* root = NULL;
  65.         for (int j = 0; j < n; j++) {
  66.             int v, data;
  67.             char c;
  68.             cin >> v >> data >> c;
  69.  
  70.             if (j == 0) {
  71.                 root = newNode(v);
  72.             }
  73.             inserted = false;
  74.             insertNode(root, v, data, c);
  75.         }
  76.  
  77.         printInOrder(root);
  78.         cout << endl;
  79.     }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement