Как заполнить бинарное дерево чтобы оно не было деревом поиска? - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здесь я хочу сделать так чтобы число в зависимости от случайного temp отправлялось налево или направо, НО у меня происходит утечка памяти и на выходе я получаю меньшее количество элементов чем необходимо, кто знает подскажите пожалуйста как исправить ну или какой ещё есть способ
Листинг программы
  1. void fillTree(Tree* const root, int n) {
  2. for (int i = 0; i < n; i++) {
  3. Tree* item = new Tree;
  4. item->Data = rand() % 100;
  5. item->Left = nullptr;
  6. item->Right = nullptr;
  7. Tree* cur = root;
  8. Tree* prev = nullptr;
  9. while (cur) {
  10. int temp = rand() % 100;
  11. if (cur->Data != item->Data) {
  12. if (temp % 2 == 0) {
  13. prev = cur;
  14. cur = cur->Right;
  15. }
  16. else {
  17. prev = cur;
  18. cur = cur->Left;
  19. }
  20. }
  21. else {
  22. prev = cur;
  23. cur = cur->Right;
  24. needed = true;
  25. }
  26. }
  27. if (prev->Data < item->Data)
  28. prev->Right = item;
  29. else
  30. prev->Left = item;
  31. }
  32. }

Решение задачи: «Как заполнить бинарное дерево чтобы оно не было деревом поиска?»

textual
Листинг программы
  1. if ( rand() & 1)
  2.     // пихать вправо
  3. else
  4.     // пихать влево

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы