|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.10.2023, 23:57 | #1 |
Новичок
Джуниор
Регистрация: 06.10.2023
Сообщений: 3
|
С++ Для каждой вершины дерева с четным значением уменьшить ее значение в два раза
По своему условию я написала программу: Дан указатель P1 на корень непустого дерева. Для каждой вершины дерева с четным значением уменьшить ее значение в два раза.
Мне нужно, чтобы элементы печатались в том порядке в котором вводятся, а они сортируются по возрастанию. Как убрать сортировку элементов дерева при печати перед изменением дерева и после изменения дерева Может я не правильно написала программу, согласно условию, кто-нибудь может сказать как нужно? Код:
|
07.10.2023, 01:55 | #2 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Ваша функция insertNode "строит" не просто двоичное дерево, а двоичное дерево поиска. Симметричный обход такого дерева дает элементы по возрастанию. Нужно по-другому заполнять дерево, чтобы симметричный обход выдал элементы в порядке, совпадающем с порядком ввода. Но в условии никаких требований о порядке нет, дерево уже дано, и, кстати, не сказано, что дерево именно двоичное.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
07.10.2023, 06:49 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Это не ваша программа и думать вы не хотите. Я никогда не поверю, что человек хоть чуть подумавший вдруг не нашел, где у него элементы сравниваются.
|
07.10.2023, 09:21 | #4 |
Новичок
Джуниор
Регистрация: 06.10.2023
Сообщений: 3
|
Я это понимаю, но не знаю как исправить, потому, что эту функцию я взяла из учебника, который нам дали, другого там нет. Поэтому и спрашиваю.
|
07.10.2023, 09:56 | #5 |
Новичок
Джуниор
Регистрация: 06.10.2023
Сообщений: 3
|
Какой обход применить лучше симметричный или сили другой в этой задаче
|
08.10.2023, 07:00 | #6 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Вы можете в insertNode не сравнивать элементы, а всегда добавлять очередной элемент в правое поддерево, тогда при симметричном обходе порядок ввода и вывода совпадёт.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уменьшить картинку - Есть изображение каких-то там размеров. Нужно уменьшить его вдвое по всем параметрам. процедура уменьшает размер картинки (jpg) в два раза | Kronos913 | Общие вопросы Delphi | 2 | 19.03.2021 10:15 |
[Pascal ABC] Если максимальное значение из трёх введённых чисел больше 50, то найти произведение чисел, иначе - уменьшить каждое число в 2 раза. | Supard | Помощь студентам | 4 | 29.09.2017 10:20 |
Удаление заданной вершины бинарного дерева. | bobbyserf | Общие вопросы C/C++ | 0 | 19.04.2015 21:34 |
Дан массив X(N,M) .Уменьшить в 2 раза все элементы той строки массива,в которой находится наибольший элемент. | darwin1 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 13.04.2014 11:54 |
улаление вершины дерева | olol-o | Помощь студентам | 3 | 27.12.2012 17:05 |