Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Перевод из тфиксной формы в инфиксную

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Перевод из тфиксной формы в инфиксную
Имя
Сообщение << Старые топики   Новые топики >>
Перевод из тфиксной формы в инфиксную - 2007-05-09 21:16:19.886666   
saturn61

Сообщений: 7
Оценки: 0
Присоединился: 2006-12-31 00:19:57.113333
Народ, собственно вопрос звучит как заголовок)) как перевести алгебраическое выражение из постфиксной в инфиксную, т.е. если дано abc+*, то должны получить a*(b+c).
Реализовывать надо через стек. У меня уже м03ккк не варит после кучи других лаб.
Дайте алгоритм, плз. Если есть код,то я ваще буду счастлив)))))
Post #: 1
RE: Перевод из тфиксной формы в инфиксную - 2007-05-09 22:23:46.110000   
blacksun

Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
А ты уверен, что седня, 9 мая, у кого то варят мозги? ))
Post #: 2
RE: Перевод из тфиксной формы в инфиксную - 2007-05-09 22:24:13.280000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
а чего-то мне кажется одним стеком тут не обойтись. сосчитать можно, на одном стеке, а вот преобразовать… мне чёт в голову не лезет идей. нужна ещё какая-то динамическая структурка, типа дерева. может быть хватит второго стека, но не факт. надо думать долго.

то есть идея примерно такая:
1. читаем токен.
2. если токен – атом, то кладём его в стек и идём на 1.
3. если операция, то выдёргиваем из стека два токена, объединяем с операцией, кладём получившееся выражение обратно в стек(?) и идём на 1.

только тут динамическая древовидная структура понадобится для представления выражения.
Post #: 3
RE: Перевод из тфиксной формы в инфиксную - 2007-05-09 23:15:21.150000   
T

Сообщений: 1100
Оценки: 0
Присоединился: 2006-01-14 00:15:36
Тану стеком ЛИЛО обходимся:
1 Все цифры в стек, пока не пойдут знаки
2 Если знак то достать из стека 2 верхних цифры и делаем с ними этот знак, результат кидаем в стек и смотрим на следующий знак, повторяем эту строку пока не конец командной строки

Трассируем:
программа = 5 3 7 + *
Состояния стека:
1) 5 3 7
увидели "+" забрали 3 и 7 сложили их и кинули обратно 10
2) 5 10
увидели "*" забрали 5 и 10 умножили их и кинули обратно 50
3) 50
Результат готов.
Post #: 4
RE: Перевод из тфиксной формы в инфиксную - 2007-05-09 23:24:40.986666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
2T: ты считаешь результат, а надо:
quote:

перевести алгебраическое выражение из постфиксной в инфиксную
Post #: 5
RE: Перевод из тфиксной формы в инфиксную - 2007-05-10 00:43:35.106666   
T

Сообщений: 1100
Оценки: 0
Присоединился: 2006-01-14 00:15:36
Блин, сори ))
а для перевода нада подумать… эт можно…
Post #: 6
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Перевод из тфиксной формы в инфиксную







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.