Advertisement
CyberN00b

Untitled

Jan 7th, 2023
996
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.97 KB | None | 0 0
  1. struct Node{
  2.     int bro;
  3.     int left_son;
  4.     int parent;
  5.     int val;
  6.    
  7.     Node(int val, vector<Node*>& nodes, int parent=-1) {
  8.         this->val = val;
  9.         this->parent = parent;
  10.         bro = -1;
  11.         left_son = -1;
  12.         nodes.push_back(this);
  13.         if (parent != -1) {
  14.             Node* p = nodes[parent];
  15.             if (p->val >= val) {
  16.                 p->left_son = nodes.size() - 1;
  17.                 for (int i = parent + 1; i < nodes.size(); ++i)
  18.                     if (nodes[i]->parent == parent) {
  19.                         bro = i;
  20.                         break;
  21.                     }
  22.             } else {
  23.                 for (int i = parent + 1; i < nodes.size(); ++i)
  24.                     if (nodes[i]->parent == parent) {
  25.                         nodes[i]->bro = nodes.size() - 1;
  26.                         break;
  27.                     }
  28.             }
  29.         }
  30.     }
  31. }
  32.  
  33. struct Tree{
  34.    
  35. private:
  36.  
  37.    
  38.     vector<Node*> nodes;
  39. }
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement