#include typedef struct REF2 { int value; REF2 * left = NULL; REF2 * right = NULL; }ref2; void dodaj(ref2 *&t, int value) { if (t == NULL) { ref2* nowy = new ref2{ value }; t = nowy; } else if (value < t->value) { dodaj(t->left, value); } else { dodaj(t->right, value); } } std::ostream& operator << (std::ostream& stream, ref2* &bst) { if (bst->left != NULL) { stream << bst->left; } stream << bst->value << " "; if (bst->right != NULL) { stream << bst->right; } return stream; } int main() { ref2* tree = new ref2{ 5 }; dodaj(tree, 10); dodaj(tree, 1); dodaj(tree, 2); std::cout << tree; delete tree; return 0; }