Перевод из тфиксной формы в инфиксную
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Перевод из тфиксной формы в инфиксную - 2007-05-09 21:16:19.886666
|
|
|
saturn61
Сообщений: 7
Оценки: 0
Присоединился: 2006-12-31 00:19:57.113333
|
Народ, собственно вопрос звучит как заголовок)) как перевести алгебраическое выражение из постфиксной в инфиксную, т.е. если дано abc+*, то должны получить a*(b+c). Реализовывать надо через стек. У меня уже м03ккк не варит после кучи других лаб. Дайте алгоритм, плз. Если есть код,то я ваще буду счастлив)))))
|
|
|
RE: Перевод из тфиксной формы в инфиксную - 2007-05-09 22:23:46.110000
|
|
|
blacksun
Сообщений: 2360
Оценки: 0
Присоединился: 2006-09-27 03:05:59.350000
|
А ты уверен, что седня, 9 мая, у кого то варят мозги? ))
|
|
|
RE: Перевод из тфиксной формы в инфиксную - 2007-05-09 22:24:13.280000
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
а чего-то мне кажется одним стеком тут не обойтись. сосчитать можно, на одном стеке, а вот преобразовать… мне чёт в голову не лезет идей. нужна ещё какая-то динамическая структурка, типа дерева. может быть хватит второго стека, но не факт. надо думать долго. то есть идея примерно такая: 1. читаем токен. 2. если токен – атом, то кладём его в стек и идём на 1. 3. если операция, то выдёргиваем из стека два токена, объединяем с операцией, кладём получившееся выражение обратно в стек(?) и идём на 1. только тут динамическая древовидная структура понадобится для представления выражения.
|
|
|
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 Результат готов.
|
|
|
RE: Перевод из тфиксной формы в инфиксную - 2007-05-09 23:24:40.986666
|
|
|
rgo
Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
|
2T: ты считаешь результат, а надо: quote:
перевести алгебраическое выражение из постфиксной в инфиксную
|
|
|
RE: Перевод из тфиксной формы в инфиксную - 2007-05-10 00:43:35.106666
|
|
|
T
Сообщений: 1100
Оценки: 0
Присоединился: 2006-01-14 00:15:36
|
Блин, сори )) а для перевода нада подумать… эт можно…
|
|
|
|
|