Advertisement
Korotkodul

tree1

Apr 12th, 2025 (edited)
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <exception>
  4. #include <cmath>
  5. #include <unordered_set>
  6. #include <vector>
  7. #include <unordered_map>
  8. #include <algorithm>
  9. using namespace std;
  10.  
  11. constint inf = 2e9;
  12.  
  13. struct node{
  14.     node* self;
  15.     node* parent;
  16.     node* l;
  17.     node* r;
  18.     int vall
  19.     node(par) : parent(par), l(nullptr), r(nullptr), self(this), val(inf) {}
  20.     node() : parent(nullptr), l(nullptr), r(nullptr), self(this),val (inf) {}
  21.     node(node *par, node *L, node *R) : parent(par), l(L), r(R), self(this), val(inf) {}
  22. };
  23.  
  24. struct tree{
  25.     vector <int> a = {1, 2, 3, 4, 5};
  26.     node main_root;
  27.     node create_subtree(node* par, int Li, int Ri) {
  28.         /*Ri == Li + 2 - работает по алгоритмы
  29.         Ri == Li + 1 - особ случ
  30.         Ri == Li - особ случ*/
  31.         node root(par);
  32.         node left_root;
  33.         node right_root;
  34.         if (Ri == Li) {
  35.             return root;
  36.         }
  37.         if (Ri == Li + 1) { //Ri - root, Li - left_root
  38.             left_root = create_subtree(Li, Li);
  39.             root.l = left_root;
  40.             return root;
  41.         }
  42.         root.self = &arr[len / 2];
  43.         left_root = create_subtree(0, len / 2 - 1);
  44.         right_root = create_subtree(len / 2 + 1, len - 1);
  45.         root.l = left_root.self;
  46.         root.r = right_root.self;
  47.         return root;
  48.     }
  49.     void create(vector <int> arr) {
  50.         a = arr;
  51.         int len = a.size();
  52.         create_subtree(0, len);
  53.         return;
  54.     }
  55.     void output() {
  56.         return;
  57.     }
  58.     void find_first(int*  v) {
  59.         return;
  60.     }
  61.     void find_nex(int* v) {
  62.         return;
  63.     }
  64.     void insert_after(int* v) { //а insert_defore надо?
  65.         return;
  66.     }
  67. };
  68.  
  69. int main() {
  70.     tree T;
  71.     vector <int> a = {1, 2, 3, 4, 5};
  72.     T()
  73. }
  74.  
  75.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement