Advertisement
TwITe

Untitled

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