Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. tree create(tree* root) {
  2.     tree* prev = NULL, * t = NULL;
  3.     int b, find;
  4.     cout << "vvedite chislo:" << endl; cin >> b;
  5.  
  6.     if (root = NULL) {
  7.         root = list(b); // создаю лист
  8.     }
  9.     else {
  10.         while (1) {
  11.             if (b < 0)break; // проверка на отрицательное число
  12.             t = root;
  13.             find = 0; //флаг
  14.             while (t && !find) { // пока т не пустое и нормальный флаг доходим до конца дерева
  15.                 prev = t; // передвигаем указатель Т на след.
  16.                 if (t->inf == b)find = 1; // проверка, есть ли такое же число и флаг=1
  17.                 else {
  18.                     if (b < t->inf) t = t->left;
  19.                     else t = t->right;
  20.                 }
  21.             }
  22.             if (!find) {       //нет такого же числа
  23.                 t = list(b);   // создаем лист
  24.                 if (prev)
  25.                 {
  26.                     if (b < prev->inf) prev->left = t;
  27.                     else prev->right = t;
  28.                 }
  29.                 else
  30.                 {
  31.                     cout << "prev is NULL\n";
  32.                 }
  33.             }
  34.         }
  35.     }
  36.     return *root;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement