|
0 / 0 / 0
Регистрация: 19.02.2023
Сообщений: 16
|
||||||
Правильно ли я пишу алгоритмы?05.03.2023, 11:43. Показов 726. Ответов 13
Метки авл-дерево (Все метки)
Здравствуйте, реализовал авл-дерево для задачки: http://spuzin.ru/wp-content/up... maliar.pdf на странице 50.
И вот код получился(если что, то он прошёл все тесты), но меня смущает объём, кто-нибудь скажите, я что-то не так сделал? В общем принимается критика(я просто не особо знаю, как надо код писать)
И ещё, для чего в той задаче та морока с модулем от предыдущего значения нужна была? Я просто до сих пор не понял, что за онлайн/офлайн
0
|
||||||
| 05.03.2023, 11:43 | |
|
Ответы с готовыми решениями:
13
Правильно ли я пишу? Не правильно пишу путь?
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|||
| 05.03.2023, 14:35 | |||
|
Например, раз Вы используете АВЛ-дерево, в коде должны быть функции, реализующие данный АТД. Эти функции должны вызывать другие функции - для отдельных шагов алгоритма. И т.д. А так, через полгода Вы сами не поймете, что делает этот код.
0
|
|||
|
0 / 0 / 0
Регистрация: 19.02.2023
Сообщений: 16
|
|
| 05.03.2023, 18:22 [ТС] | |
|
Так они же вызывают, например, исправ вызывается адд или дел
0
|
|
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|||||||
| 05.03.2023, 19:46 | |||||||
|
По функции удаления я не вижу, что она вызывает балансировку. Кроме того, нет функции, которая создает дерево. Еще желательно совмещать объявление переменной с ее инициализацией. И, вообще, использовать вместо иф тернарный оператор везде, где он подходит по смыслу (где переменной присваивается одно из двух значений в зависимости от условия). Например, строки 36-42 превращаются в три присваивания. Добавлено через 23 минуты Вот для примера функция балансировки:
0
|
|||||||
|
|
||
| 05.03.2023, 21:19 | ||
|
Немного не по теме.
Когда я вижу, что ф-ция не влазит в экран - значит что-то явно пошло не так. Простыню на два-три экрана врядли кто-то поймет. Времена бейсика прошли, угу. "Я хожу не смея волю дать словам, Милый мой, хороший, догадайся сам." Не обижайтесь, я сам в детстве делал подобные ошибки. Дорогу осиливает идущий.
0
|
||
|
0 / 0 / 0
Регистрация: 19.02.2023
Сообщений: 16
|
|
| 05.03.2023, 21:21 [ТС] | |
|
В общем я что то плохо понял, что не так. Одна функция-одна штука. Вы мне предлагаете дробить функцию на отдельные штуки?
0
|
|
|
0 / 0 / 0
Регистрация: 19.02.2023
Сообщений: 16
|
|
| 05.03.2023, 21:29 [ТС] | |
|
Ааа, ну так то я бы наверное писал получше. Просто я же для себя чтоб навык в реализации идей в код.
0
|
|
|
|
||
| 05.03.2023, 21:59 | ||
|
Добавлено через 29 минут На всякий случай. https://ru.wikipedia.org/wiki/Декомпозиция И не сочтите за... - неважно, ни за что не сочтите. https://www.cyberforum.ru/blog... g6882.html Вот отсюда я очень рекомендую раздел "Стандарты программирования" И в особенности первую книгу - Ален Голуб - Правила программирования на C и C++.pdf
0
|
||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
|||
| 05.03.2023, 23:19 | |||
|
Представьте, кто-то интересуется, как написать сбалансированное дерево. Если дать ему мой код, то он сможет быстро разобраться в теме, даже не используя справочной информации. Если дать ему Ваш код, то у него уйдет целый день на то, чтобы просто понять, что делает Ваш код. p.s. Код пишется для того, чтобы его читали. Большую часть своего рабочего времени программист тратит на чтение кода. Добавлено через 1 минуту
0
|
|||
|
|
||||||||||||
| 06.03.2023, 08:44 | ||||||||||||
0
|
||||||||||||
| 06.03.2023, 18:46 | |||||||
|
Критиковать начинающего - много ума не надо. Слов обычно говорится много, но.... Попробую сказать "с чего лучше начать". Вцепимся в 1 строку
2) Освойте алиас typedef и/или using, напр
Возможно parent, right, left - одна шайка-лейка которую надо держать вместеЭто все (больше все равно не заглотнуть за раз)
0
|
|||||||
|
698 / 572 / 75
Регистрация: 20.09.2014
Сообщений: 3,700
|
||||||||
| 06.03.2023, 19:41 | ||||||||
Добавлено через 17 минут
0
|
||||||||
|
Модератор
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
|
||||||||
| 06.03.2023, 19:52 | ||||||||
0
|
||||||||
| 06.03.2023, 19:52 | |
|
Помогаю со студенческими работами здесь
14
Пишу крестики-нолики. Что не правильно в этом коде? Правильно ли пишу код, непонятны результаты функции GetDiskFreeSpaceEx Почему он ругается на void main {}? Я же все правильно пишу
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|