|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.06.2022, 13:21 | #1 |
Новичок
Джуниор
Регистрация: 12.06.2022
Сообщений: 2
|
Найти ошибку в преобразовании строки в обратную польскую запись
Пытаюсь написать программу, которая преобразует входную строку в обратную польскую запись, использую алгоритм сортировочной станции. Если во входной строке нет скобок, то преобразование происходит правильно. Но с появлением скобок преобразование происходит неверно. Не могу понять в чем ошибка. Подскажите пожалуйста.
Код:
|
12.06.2022, 13:43 | #2 | ||
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Цитата:
P.S. При использовании Код:
Цитата:
Основной цикл опирается на значение input_string.size(), а не на NULL в конце строки. При введении ограничения на длину строки, станет возможным разбор части строки содержащей выражении без ее разбивки/усечения/копирования в подстроку. |
||
12.06.2022, 17:16 | #3 |
Новичок
Джуниор
Регистрация: 12.06.2022
Сообщений: 2
|
Исправил те замечания, на которые вы указали, но выходная строка все равно получается не верной
|
12.06.2022, 22:00 | #4 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Намек с подстроками вы не поняли. Если нашли скобку, то ищите ее закрывающуюся пару и выполняйте рекурсивно/циклически разбор части строки от скобки до скобки. Так приоритеты всех вложенных операторов будут соблюдаться. (A + B) * (C + D) здесь + имеет больший приоритет, чем * потому, что он в скобках. У вас же приоритеты операторов не меняются. (A * B + C) * (D + E) - тут все становится чуть сложнее. Приоритет * в скобках выше чем у + в тех же скобках, а приоритет * между скобок ниже чем у обоих + в скобках.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Преобразование в обратную польскую запись с++ | sobaka13 | Помощь студентам | 12 | 19.05.2021 19:16 |
Превод из инфиксной в обратную польскую запись | Anny_Apple | Помощь студентам | 0 | 11.04.2011 19:22 |
Перевод из инфиксной записи в обратную польскую | Anny_Apple | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.04.2011 20:49 |
найти ошибку в коде С задача на обратную матрицу | Monomah | Помощь студентам | 0 | 20.02.2011 17:11 |
Задача на обратную польскую запись | Horknee | Помощь студентам | 8 | 11.03.2009 22:09 |