![]() |
|
Модераторы: bsa |
![]()
|
|
| doomer74 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 4.7.2012 Репутация: нет Всего: нет |
Доброго времени суток!
Надо с помощью стека на динамическом массиве реализовать перевод инфиксного выражения в постфиксное. (обратная польская нотация). с помощью алгоритма сортировочной станции. Кто не знает или забыл, что это такое, например: дано выражение (4+5)*7 45+7* - это обратная польская запись (постфиксное выражение) У меня почему-то не записываются все операции в стек, в чем ошибка в программе?
|
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 12 Всего: 72 |
1. Ты делаешь pop() не проверив есть ли что на стеке.
2. Тебе нужен top() - проверить, что лежит вверху стека, не доставая его из стека. При отсутствии top() это делается при помощи pop(), но нужно не забыть после этого сделать push(). |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
но лучше иметь еще метод empty(), который будет возвращать true, если стек пуст. А top() (или front()) нужна не меньше, чем pop и push. Тем более, что в стандартном стеке (STL) метод pop не возвращает ничего.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |