Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tree create(tree* root) {
- tree* prev = NULL, * t = NULL;
- int b, find;
- cout << "vvedite chislo:" << endl; cin >> b;
- if (root = NULL) {
- root = list(b); // создаю лист
- }
- else {
- while (1) {
- if (b < 0)break; // проверка на отрицательное число
- t = root;
- find = 0; //флаг
- while (t && !find) { // пока т не пустое и нормальный флаг доходим до конца дерева
- prev = t; // передвигаем указатель Т на след.
- if (t->inf == b)find = 1; // проверка, есть ли такое же число и флаг=1
- else {
- if (b < t->inf) t = t->left;
- else t = t->right;
- }
- }
- if (!find) { //нет такого же числа
- t = list(b); // создаем лист
- if (prev)
- {
- if (b < prev->inf) prev->left = t;
- else prev->right = t;
- }
- else
- {
- cout << "prev is NULL\n";
- }
- }
- }
- }
- return *root;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement