рекурсивный спуск



Автор Pro$eR задал вопрос в разделе Другие языки и технологии

Вопрос умным программистам (рекурсивный спуск и построение дерева), желательно знающим паскаль и получил лучший ответ

Ответ от Б Д[эксперт]
Поток сознания:
Стек - средство реализации рекурсии. М. б. просто использовать рекурсивные процедуры?
Для одной формулы в заданной грамматике существует много соответствующих ей деревьев.
Если строить дерево "справа налево", то получится дерево с длинной правой ветвью (глубина = количество знаков-1).
Не имеет смысла отдельно проверять правильность формулы - проверка естественно получается в ходе построения дерева.
Псевдокод функции:
function фДерево (строка) : тУзел
begin
if строка пустая then ошибка
создать пустой Узел
символ1 := первый символ строки, убрать из строки
if символ1 не терминальный then ошибка
if строка пустая then begin
Узел. средний := символ1
return Узел
end
Узел. левый := новый узел с вершиной = символ1
символ2 := первый символ строки, убрать из строки
if символ2 не знак then ошибка
Узел. средний := символ2
Узел. правый := фДерево (строка)
return Узел
end{фДерево}
Терминальные символы хранятся в символьном поле "средний" терминальных вершин (узлов) дерева.
Знаки хранятся в поле "средний" нетерминальных вершин.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Вопрос умным программистам (рекурсивный спуск и построение дерева), желательно знающим паскаль

Программирование: метод рекурсивного спуска
там скорее всего выражение со скобками- иначе смысла в рекурсии нет
примерподробнее...
спросили в Арбалет
Какой арбалет лучше? Есть варианты арбалет Гепард, арбалет Черный питон и арбалет Кайман!
Ход тетивы «Черного питона» 42 см, при том что большинство рекурсивных арбалетов имеют ход тетивы
подробнее...
Метод рекурсивного спуска на Википедии
Посмотрите статью на википедии про Метод рекурсивного спуска
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*