![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Начинающий кодер
Пользователь
Регистрация: 26.01.2010
Сообщений: 72
|
![]()
Здравствуйте!
Вроде простая задачка, на входе я имею строку Код:
реализовать через стек, его я сделал : Код:
была версия с рекурсией, но тоже это лишь мысли)
with love ^.^
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
стек это место для хранения операндов (1,2,3,8,7), но не для операций (m, M).
посмотрите обратная польская запись M(m(1,M(2,3)),M(8,7)) 1 2 3 M m 8 7 M M это будет запись тех же действий в обратной польской операнды (числа) помещаем на стек, если встретили операцию выполняем предписанные действия достать два значения, сравнить и положить одно искомое(мах/мин) на сек. З.Ы. алгоритм перевода из инфиксной (обычной) записи m(1,2) в обратную польскую [ 1 2 m ] есть в вики
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 14.03.2014 в 16:00. |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 11.10.2011
Сообщений: 3,882
|
![]()
А нафига тут стек? Нисходящий рекурсивный анализ и всё..
|
![]() |
![]() |
![]() |
#4 |
Начинающий кодер
Пользователь
Регистрация: 26.01.2010
Сообщений: 72
|
![]()
Нашел алгоритм перевода, не знаю может есть и попроще..но работает хорошо с обычными операциями. но вот как дать понять что Есть 'M' и 'm' ?
Как посчитать выражение теперь понял, ОПЗ действительно удобная штука, но как бы реализовать её с такими неизвестными М\m ![]()
with love ^.^
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
встретили символы операций 'M(' / 'm(' отправили в стек операций.
встретили операнды 1 4 8 отправили в стек операндов. встретили символ "окончания операции" ')' выгружаем код(символ) операции из стека операций.
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа со стеком | temperus | Помощь студентам | 1 | 20.11.2011 05:30 |
работа со стеком | Sparky | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 23.09.2010 11:08 |
работа со стеком | xarvenx | Общие вопросы C/C++ | 1 | 25.06.2009 13:31 |
Задача со стеком | host.pro | Помощь студентам | 1 | 12.03.2009 12:48 |