Как заполнить бинарное дерево чтобы оно не было деревом поиска? - 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 // пихать влево
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д