Как заполнить бинарное дерево чтобы оно не было деревом поиска? - C (СИ)
Формулировка задачи:
Здесь я хочу сделать так чтобы число в зависимости от случайного temp отправлялось налево или направо, НО у меня происходит утечка памяти и на выходе я получаю меньшее количество элементов чем необходимо, кто знает подскажите пожалуйста как исправить ну или какой ещё есть способ
Листинг программы
- void fillTree(Tree* const root, int n) {
- for (int i = 0; i < n; i++) {
- Tree* item = new Tree;
- item->Data = rand() % 100;
- item->Left = nullptr;
- item->Right = nullptr;
- Tree* cur = root;
- Tree* prev = nullptr;
- while (cur) {
- int temp = rand() % 100;
- if (cur->Data != item->Data) {
- if (temp % 2 == 0) {
- prev = cur;
- cur = cur->Right;
- }
- else {
- prev = cur;
- cur = cur->Left;
- }
- }
- else {
- prev = cur;
- cur = cur->Right;
- needed = true;
- }
- }
- if (prev->Data < item->Data)
- prev->Right = item;
- else
- prev->Left = item;
- }
- }
Решение задачи: «Как заполнить бинарное дерево чтобы оно не было деревом поиска?»
textual
Листинг программы
- if ( rand() & 1)
- // пихать вправо
- else
- // пихать влево
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д