Advertisement
TwITe

Untitled

Jan 23rd, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.86 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.     while (true) {
  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.         if (!inserted) {
  50.             insertNode(current_node->left, v, data, c);
  51.         }
  52.         else {
  53.             return;
  54.         }
  55.  
  56.         if (!inserted) {
  57.             insertNode(current_node->right, v, data, c);
  58.         }
  59.         else {
  60.             return;
  61.         }
  62.     }
  63. }
  64.  
  65. //1
  66. //4
  67. //10 20 L 10 30 R 20 40 L 20 60 R
  68.  
  69. //1
  70. //2
  71. //1 2 R 1 3 L
  72.  
  73. //1
  74. //6
  75. //10 20 L 10 30 R 20 40 L 20 60 R 30 50 L 30 70 R
  76.  
  77.  
  78. int main() {
  79.     int T;
  80.     cin >> T;
  81.  
  82.     for (int i = 0; i < T; i++) {
  83.         int n;
  84.         cin >> n;
  85.         treeNode* root = NULL;
  86.         for (int j = 0; j < n; j++) {
  87.             int v, data;
  88.             char c;
  89.             cin >> v >> data >> c;
  90.  
  91.             if (j == 0) {
  92.                 root = newNode(v);
  93.             }
  94.             inserted = false;
  95.             insertNode(root, v, data, c);
  96.         }
  97.  
  98.         printInOrder(root);
  99.         cout << endl;
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement