![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.01.2010
Сообщений: 5
|
![]()
Здравствуйте!
У меня задача: преобразовать арифметическое выражение в бинарное дерево. Для удобства я привёл это выражение к постфиксному виду и храню его в стеке. (x+a)*(x-b)+3 ---> xa+xb-*3+. Вызываю эту процедуру в главной программе, но подаю дерево, которое уже хранит "+" в корне, то есть стек выглядит, как "xa+xb-*3". Ну и применяю печать дерева. В итоге программа строит дерево лишь отчасти правильно, то есть половину символов берёт из стека, половину из кучи. Проходя по строчкам обнаружил, что в результате выполнения моего рекурсивного алгоритма программа неверно делает "шаг назад", после построения связки "-"-"b"-"x": программа опять идёт в "-" и заново создаёт правого и левого потомка. В чём моя ошибка? Или, может, я усложняю задачу и всё решается проще, вообще без постфикса? ![]() ![]() Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
дерево арифметического выражения | Cannibal | Помощь студентам | 6 | 15.05.2011 17:18 |
Построение арифметического выражения. | Arugin | Помощь студентам | 5 | 16.03.2009 09:49 |
Delphi(консольный режим) спрятать окно | Air | Помощь студентам | 4 | 02.07.2008 14:21 |
Загрузка из файла (консольный режим Делфи) | adwaer | Помощь студентам | 3 | 30.06.2008 15:55 |