Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 17.03.2015, 21:06
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 11  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Zebestov Посмотреть сообщение
Лишь первый раз мы рекурсивно пройдемся от child1 к root
Если каждый раз у нового объекта дергать метод, то думаю, что это не рекурсия. Рекурсия дернет свой же метод (этого же объекта). Короче, при рекурсии в коллстеке периодически появляется один и тот же объект.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 17.03.2015, 22:25
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 12  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Если строго говорить, то ты прав конечно.
Интересно, как такие вызовы называются?
__________________
Поймай яблоко 2!

Старый 17.03.2015, 22:58
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 13  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Нерекурсивными, по-моему =) Все состояние объекта сохраняется в нем же. Я бы назвал это обходом с помощью очереди. Но сама очередь есть распределенная сущность, состоящая из других объектов, сохраняющихся в обходящих. Короче, нам в любом случае нужна очередь
Код:
some nodes must be deferred – stored in some way for later visiting.
This is often done via a stack (LIFO) or queue (FIFO).
Т.о. само понятие "поиска" в, например, дереве, в глубину, подразумевает сохранение уже обойденных нодов. Чтобы потом воспользоваться ими как отправной точкой для перебора их детей. Но вот где будет храниться эта нода: в глобальном Array или на уровне стека вызовов AVM, в котором сохраняется вновь посещенный объект — это без разницы. Если рекурсия — это сохранение ноды в таких объектах, то я не прав. Если рекурсия — это вызов метода у того же самого объекта, то я прав. Отдельно стоит использование глобального Array. Его использование вообще не попадает под определение рекурсии.

Можно строго подойти к рекурсии: не делай лишних объектов в коллстеке и мы не будем называть твой алгоритм рекурсивным. Не знаю, в общем. Я тоже раньше рекурсию, так же как ты, ассоциировал с вызовами "одинаковых" методов у разных объектов. Но вот задумался немного и пришел в замешательство.

Ах, да. Немного пруфов не повредит:

Код:
В программировании рекурсия — вызов функции (процедуры) из неё же самой, непосредственно
 (простая рекурсия) или через другие функции (сложная или косвенная рекурсия)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 17.03.2015 в 23:11.
Старый 17.03.2015, 23:26
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 14  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Вот. Обход дерева, да.
__________________
Поймай яблоко 2!

Старый 17.03.2015, 23:47
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 15  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Обход дерева может быть рекурсивным или нерекурсивным.
Там еще из типов обходов в глубину есть. Так же простой обход по парентам (не обход всего дерева, если что). А можно навернуть обход по уровням нод (breadth-first, обход всего дерева).
Ну и ладно. Пусть все будут здорОвы! =)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:46.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.