|
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 4
|
|
Перевод префиксной формы записи в постфиксную25.01.2010, 19:41. Показов 18362. Ответов 14
Метки нет (Все метки)
Помогите пожалуйста написать алгоритм перевода из префиксной формы записи в постфиксную(минуя инфиксную).
В сети таких алгоритмов не нашел. Для перевода из инфиксной в постфиксную сколько угодно, а такого нет. Для небольших выражений написал, а вот универсальный алгоритм составить ни как не могу. Вот например для такого выражения: /*+ab-cd-+def Надо получить: ab+cd-*de+f-/ НО КАК?
0
|
|
| 25.01.2010, 19:41 | |
|
Ответы с готовыми решениями:
14
Перевод из инфиксной записи в постфиксную (С++).С применением рекурсии,как это реализовать? Преобразование формы записи выражения из префиксной в постфиксную Перевод формулы из префиксной формы в инфиксную |
|
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
|
|
| 26.01.2010, 01:11 | |
|
Счетчик = 0
Пока строка не кончилась { Операция - в стек ее. Переменная - в строку и счетчик ++ Ежели счетчик >= 2, вынимаем операцию из стека - в строку ее, и счетчик -= 2 } Кажется так, но уверенности нет
0
|
|
|
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 4
|
|||
| 26.01.2010, 17:05 [ТС] | |||
|
А вот для строки
0
|
|||
|
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
|
|
| 27.01.2010, 12:41 | |
Сообщение было отмечено как решение
Решение
Donizetti, правда твоя.
Подумать надоть Добавлено через 15 часов 12 минут Предлагаю такой алгоритм (тоже без уверенности, но на предложенном примере он работает) Как только встречается конструкция ОПП, заменяем ее на (ППО) и это считаем тоже переменной. Начинаем все сначала, пока не останется одна "переменная" (наверное, с самого начала можно не начинать) Потом убираем все скобки - и все! О - операция П - переменная /*+ab-cd-+def /*(ab+)-cd-+def /*(ab+)(cd-)-+def /((ab+)(cd-)*)-+def /((ab+)(cd-)*)-(de+)f /((ab+)(cd-)*)((de+)f-) (((ab+)(cd-)*)((de+)f-)/) ab+cd-*de+f-/ А вообще, если погуглить "префиксная постфиксная", то четвертая найденная ссылка на zaplaty.ru чего-то предлагает за небольшие денежки
3
|
|
|
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 4
|
|
| 28.01.2010, 20:02 [ТС] | |
|
Спасибо. Вроде всё правильно.
0
|
|
|
1180 / 990 / 83
Регистрация: 29.10.2009
Сообщений: 1,385
|
|
| 28.01.2010, 20:37 | |
|
Конечно, внутренние скобки можно удалять сразу.
Т.е. у нас есть 2 вида "переменных" (термин неудачный) ::= просто переменная | (постфиксное выражение) Это я так, чтоб самому себе прояснить
1
|
|
|
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 4
|
||||||
| 29.01.2010, 18:25 [ТС] | ||||||
|
Один мой знакомый предложил заменять выражение в скобках на другой символ, например из таблица ASCII, т.е. встретили первое такое выражение заменили на на символ с кодом 1, второе на символ с кодом 2 и.т.д.
Потом заменяем эти символы наоборот на выражения, тока преобразованные из префиксной в поствиксную форму. Т.е. *+ab-cd *12 3 1=ab+ 2=cd- 3=12* 3 12* ab+cd-* Добавлено через 8 минут Вот собственно код:
1
|
||||||
|
54 / 1 / 1
Регистрация: 03.06.2011
Сообщений: 48
|
||||||
| 10.10.2011, 16:35 | ||||||
0
|
||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
| 11.10.2011, 11:36 | ||||||
2
|
||||||
|
54 / 1 / 1
Регистрация: 03.06.2011
Сообщений: 48
|
|
| 12.10.2011, 15:11 | |
|
Mr.X, а если словесно алгоритм это как?, ото я в си слабоват.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 12.10.2011, 15:28 | ||
|
1. Откусывает от строки первый символ. 2. Если это не операция, то возвращает его. 3. Если же это операция, то получает первый и второй ее аргументы в постфиксной форме, дважды применив к строке функцию pref_to_postf. 4. Возвращает конкантенацию первого и второго аргументов, а также откушенного знака операции.
1
|
||
|
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 12
|
|
| 31.03.2015, 21:25 | |
|
Mr.X, а не подскажите как перевести этот код на СИ?
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 01.04.2015, 21:57 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 26.11.2014
Сообщений: 12
|
||||||
| 01.04.2015, 22:42 | ||||||
|
Mr.X, спасибо я уже сделал, вот код, может кому понадобится
0
|
||||||
|
0 / 0 / 0
Регистрация: 05.06.2017
Сообщений: 34
|
|
| 25.06.2017, 21:20 | |
|
помогите сделать из постфиксного в префиксное представление.
0
|
|
| 25.06.2017, 21:20 | |
|
Помогаю со студенческими работами здесь
15
Перевод из инфиксной записи в постфиксную Перевод из инфиксной записи в постфиксную
Перевод инфиксной формы в постфиксную Перевод из префиксной в инфиксную через ArrayList Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|