![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 23.12.2019
Сообщений: 2
|
![]()
Ребят, не получается, уже 2 день пытаюсь, что только не исправлял разные числа ставишь, какой то бред выводит, может кто делал такую задачу?
#include <iostream> using namespace std; struct Tree { int d; Tree*left; Tree*right; }; void Add(Tree **u, int x); int cnt(Tree *u, int &maxx, int &left, int &right); void Print(Tree *u); int main() { int left = 0; int right = 0; int kol = 0; int maxx = -1; Tree*u = 0; Tree* p0; setlocale(LC_ALL, "RUS"); int x; for (int i = 0; i < 4; i++) { cout << "Введите " << i + 1 << " элемент дерева" << endl; cin >> x; Add(&u, x); } Print(u); cout << " "<<endl; cout << "max "; int k = cnt(u, maxx, left, right); cout << k; } void Add(Tree **u, int x) { Tree *p = *u; if (p == 0) { p = new Tree; p->d = x; p->left = 0; p->right = 0; *u = p; return; } Tree *p1 = NULL; p1 = p; bool priznak = false; while (p && !priznak) { p1 = p; if (x == p->d) priznak = true; else if (x < p->d) p = p->left; else p = p->right; } if (priznak) return; Tree *pnew = new Tree; pnew->d = x; pnew->left = 0; pnew->right = 0; if (x < p1->d) p1->left = pnew; else p1->right = pnew; } void Print(Tree *u) { if (u) { Print(u->left); cout << u->d << endl; Print(u->right); } } int cnt(Tree *u, int &maxx, int & left, int &right) { if (u->left == NULL && u->right == NULL) return 1; if (u->left != NULL && u->left->d < u->d) left = cnt(u->left, maxx, left, right); if(maxx < left) { maxx = left; } else left = 0; if (u->right != NULL && u->right->d > u->d) right = cnt(u->right, maxx, left, right); if(maxx < left) { maxx = left; } else right = 0; return maxx; } |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Найти каталог с максимальным количеством файлов | sky99 | Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) | 1 | 27.05.2016 03:18 |
Найти в таблице человека с максимальным количеством дипломов | V-alterman | Общие вопросы по Java, Java SE, Kotlin | 2 | 20.11.2014 12:33 |
количество элементов в бинарном дереве поиска | CodeNOT | Общие вопросы C/C++ | 2 | 07.12.2011 19:11 |
Двоичное дерево поиска, количество элементов на каждом уровне | Kayot027 | Помощь студентам | 2 | 22.01.2011 13:49 |
Двумерный массив,номер столбца с максимальным количеством четных элементов | nondeadlollipop | Помощь студентам | 4 | 01.11.2010 07:32 |