![]() |
В случаи с факториалом использование итерации это не решение университетской задачи. От вопрос быстродействия.
И, по-моему, код приведённый expl более понятен, чем рекурсивное решение. Цитата:
|
Цитата:
На всякий случай скажу, что я не защищаю рекурсию вообще. Я защищаю применение правильных инструментов для решения соответствующих задач. |
Писал обход для построения вывода структуры трейсами. Без него тоже можно, я в теме той писал, как это делается. AS3 представляет уже готовые средства для всего этого, это понятно.
|
Цитата:
|
Про факториал и рекурсии/выход из неё.
http://www.flasher.ru/forum/showpost...62&postcount=9 |
Цитата:
Добавлено через 1 минуту Цитата:
|
Вложений: 1
В FD, к примеру
Вложение 25935 compiler options: http://livedocs.adobe.com/flex/3/htm...pilers_14.html |
Вложений: 1
Во FlashBuilder, до кучи:
Вложение 25936 |
Цитата:
Цитата:
//----------------------------------------------- По поводу сабжа... Проблему решил. Развернул рекурсию в итерацию, эмулировав стек. Глянул вот это сегодня (странно, что пропустил до этого): Цитата:
Задачу решил вчера ночью и хотя решение, можно сказать, является обобщением алгоритма, ссылку на который дал expl, но было придумано независимо от него: 1. Заходим в узел. 2. Если из него одна ветка, то идём по ней и ничего больше не делаем. 3. Если больше одной, то заносим узел в свой "стек" + заносим номер следующей ветки, по которой будем идти из этого узла, когда вернёмся в него (в начале =2). 4. Движемся вглубь дерева, пока ветки не null для очередного узла. Если null, то мы добрались до конца - возвращаемся к верхнему элементу стека. Берём из него следующий индекс (если в начале был 2, то теперь 3). Если он больше кол-ва веток для данного узла, вытесняем элемент из стека. После этого идём по ветке с индексом, который был до инкремента. 5. Делаем так пока, при необходимости возврата, не обнаружим, что "стек" пуст. Алгоритм работает как для формирования дерева по какому-либо правилу (функции: дерево поиска, дерево геометрических разбиений), так и для обхода уже готового дерева. Разница лишь в том, что для первого случая мы будем формировать ветки по направлению, а во втором – идти по ним. |
Цитата:
|
| Часовой пояс GMT +4, время: 02:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.