6 / 6 / 3
Регистрация: 22.09.2013
Сообщений: 166
|
|
1 | |
Вычислить выражение, содержащееся в строке, с использованием бинарного дерева поиска (парсинг строки)23.09.2016, 11:46. Показов 2937. Ответов 11
Метки нет Все метки)
(
В символьной строке записано правильное арифметическое выражение, которое может содержать числа и знаки операций +-*\. Вычислить это выражение с использованием Бинарного дерева поиска.
Поделитесь идеями как делать задачу. Чисто алгоритм придумать не могу. Что хранить в узлах дерева и каким образом выполнить с помощью бст еще одно условие: Арифметическое выражение с однозначными числами может содержать ошибки в арифметических операциях (например: 2++3*+3). Необходимо исправить выражение и показать исправления.
0
|
23.09.2016, 11:46 | |
Ответы с готовыми решениями:
11
Итератор дерева бинарного поиска |
Комп_Оратор)
![]() ![]() |
|
23.09.2016, 22:04 | 2 |
Это в принципе плохая идея. Лучше остановить выполнение и объяснив проблему предоставить пользователю самому исправить ошибку. Например, в Вашем примере может не плюс быть лишним, а не хватать операндов может:
2+4+3*5+3 И выяснить, где не хватает скобки или какая из них лишняя, без юзера не сможет никто. А желание налету исправить ввод, - залог страданий. То есть путь к тёмной стороне оно открыть может. ![]()
0
|
24.09.2016, 00:08 | 3 |
0
|
24.09.2016, 00:23 | 5 | |||||
Не по теме: Кстати, если скормить предложенное выражение моему поделию (предварительно переведя операторы в префиксную форму), то получится вполне вменяемое
0
|
Комп_Оратор)
![]() ![]() |
|
24.09.2016, 00:32 | 6 |
_Ivana, тут же ещё спарсить надо. У ТС задание исправлять ошибки (пусть и некоторые) при вводе строки математического выражения. Если это его идея, то я пытаюсь переубедить. А если это преподаватель измыслил, то придётся стать на его сторону. И обретя силу победить. Так было и так будет. Потому, что всегда двое их: - учитель и ученик.
![]()
0
|
24.09.2016, 00:39 | 7 |
Не по теме: IGPIGP, я смотрю, вы тоже скучаете, что аж в такие темы на подобные темы пишете :) Айда с нами с ct0r фигней маяться - Задачки - погодная машина Санта-Клауса! :)
0
|
Комп_Оратор)
![]() ![]() |
|
24.09.2016, 01:01 | 8 |
Не по теме: Тема интересная в том плане, что требует построение бинарного дерева операций. А скуки нет. Сегодня как раз неплохой денёк. Даже покодить успел и на редкость удачно. Просто когда чувствую что уже плыву, не хочется чего-нить наломать. Вот и захожу посмотреть. А к деду морозу зайду раз ты говоришь. :) Добавлено через 17 минут
0
|
24.09.2016, 01:05 | 9 |
Не по теме: Ну я нигде в соцсетях не живу, через гитхабовский аккаунт вроде зашел, не помню уже :) Хаскель ни при чем, вон коллеги на Эрланге решают, там только ответы отправлять, а как их получать - хоть на С++, хоть на бумажке ручкой :)
0
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||||||
24.09.2016, 02:59 | 11 | |||||
Не знаю причем тут дерево поиска, но через дерево задача, очевидно, решается так:
2
|
Комп_Оратор)
![]() ![]() |
||||||
24.09.2016, 12:08 | 12 | |||||
Я решал лесом:
![]()
0
|
24.09.2016, 12:08 | |
Помогаю со студенческими работами здесь
12
Реализация бинарного дерева поиска
Создание бинарного дерева поиска Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Что нового в C# 14
UnmanagedCoder 10.03.2025
Предстоящая версия C# 14 обещает принести изменения, которые сделают разработку еще более приятной и эффективной.
Что стоит отметить, так это влияние сообщества разработчиков на формирование новых. . .
|
Формулы поворота
Igor3D 10.03.2025
Добрый день
Тема
Эти формулы приводятся во множестве тьюториалов, часто под видом "матрица вращения на плоскости".
x' = x * cos(a) - y * sin(a)
y' = y * cos(a) + x * sin(a)
Как бы Вы их. . .
|
Что нового в .NET 10
UnmanagedCoder 10.03.2025
. NET 10 выходит как релиз с длительной поддержкой (LTS), включающей три года обновлений. В этом обновлении Microsoft сфокусировались на нескольких направлениях: производительность, оптимизация. . .
|
Отложенное высвобождение, RCU и Hazard Pointer в C++26
NullReferenced 09.03.2025
Многопоточное программирование стало важной частью современной разработки. Когда несколько потоков одновременно работают с общими данными, возникает целый ряд проблем, связанных с синхронизацией и. . .
|
Неблокирующийся стек на C++26
NullReferenced 09.03.2025
Традиционные способы синхронизации в многопоточном программировании — мьютексы, семафоры, условные переменные — часто превращаются в узкое место в плане производительности. При этом неблокирующиеся. . .
|
Обработка строк в C++26: Новые возможности string и string_view
NullReferenced 09.03.2025
Новый стандарт C++26 предлагает много улучшений для работы с привычными string и относительно новыми string_view.
string_view - это невладеющая ссылка на последовательность символов, появившаяся в. . .
|
Мой первый аддон для Blender 3D, с помощью нейронки (не зная даже азов пайтона, но это не значит что так и с остальным).
Hrethgir 09.03.2025
Потратил весь день. Пол-дня мне хватило, чтобы понять что с версией с 14B мне не одолеть написание функционального кода, на языке с которым я вообще никак не знаком - пайтон. Версия 22B от другого. . .
|
Einstein@Home сегодня исполняется двадцать лет!
Programma_Boinc 09.03.2025
Einstein@Home сегодня исполняется двадцать лет!
Отправлено 19 февраля 2025 года в 17:20:21 UTC
Я хочу поздравить всех наших волонтеров, разработчиков и ученых из Einstein@Home.
Мы официально. . .
|
Заполнители и расширенный набор символов в C++26
NullReferenced 09.03.2025
C++26 представляет два важных обновления: заполнители и расширенный набор символов. Заполнители (placeholders) решают давнюю проблему лаконичности кода в шаблонных выражениях и лямбда-функциях. Они. . .
|
Контракты в C++26
NullReferenced 09.03.2025
Контракты – это механизм, позволяющий указывать предусловия, постусловия и инварианты для функций в коде. Эта функциональность должна была стать частью C++20, но была исключена на встрече комитета. . .
|