Форум программистов, компьютерный форум CyberForum.ru

Обратная польская запись - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Александр30
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 14
12.07.2013, 00:11     Обратная польская запись #1
Подскажите, как по обратной польской записи выражения построить дерево выражения



Например:
дана запись 1 2 + 3 4 * -


выход:
дерево
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.07.2013, 00:11     Обратная польская запись
Посмотрите здесь:

обратная польская запись. C++
Обратная польская запись C++
Обратная польская запись C++
C++ Калькулятор (обратная польская запись)
C++ Обратная польская запись
C++ Обратная Польская Запись
C++ Тригонометрия и обратная польская запись
Калькулятор: обратная польская запись C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
12.07.2013, 00:45     Обратная польская запись #2
http://habrahabr.ru/post/100869/

Добавлено через 5 минут
Обратная польская запись
Перевод инфиксного выражения в постфиксное (обратная польская запись)
Задача "Калькулятор"
ya_noob
_
200 / 144 / 9
Регистрация: 08.10.2011
Сообщений: 432
12.07.2013, 10:27     Обратная польская запись #3
Цитата Сообщение от Александр30 Посмотреть сообщение
Подскажите, как по обратной польской записи выражения построить дерево выражения
Переформулирую: как, зная обход бинарного дерева в обратном порядке (левый-правый-корень), восстановить это дерево.

Алгоритм тривиален:
(вариант №1: идем по выражению слева направо)
1. восстанавливаем левое поддерево (рекурсия)
2. восстанавливаем правое поддерево (рекурсия)
3. вытаскиваем из обхода корень дерева (т.е. знак операции)
4. соединяем его с найденными поддеревьями.

(вариант №2: идем по выражению справа налево)
1. вытаскиваем из обхода корень дерева (знак операции)
2. восстанавливаем правое поддерево (рекурсия)
3. восстанавливаем левое поддерево (рекурсия)
4. соединяем потомков с корнем.

Но над реализацией надо немного подумать (я не указал когда вытаскиваются числа из обхода). Думайте.
Yandex
Объявления
12.07.2013, 10:27     Обратная польская запись
Ответ Создать тему
Опции темы

Текущее время: 09:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru