Здравствуйте, samius, Вы писали: S>В дереве во время итерации по внешней последовательности, полученной в результате Walk метода, будут создаваться новые итераторы по мере погружения в дерево. S>Если виртуально собрать все итераторы, созданные и собранные сборщиком во время обхода дерева, то да, их структура повторит дерево полностью. Однако в каждый конкретный момент активны только те итераторы, которые выстроены вдоль текущего пути в дереве. Структура активных энумераторов будет абсолютно соответствовать стэку в императивном подходе, который в каждый момент времени хранит лишь узлы вдоль текущего пути, а за все время проходит дерево целиком.
В общем, если я тебя правильно понял, ты утверждаешь следующее. В ходе прохода по дереву при погружении будут создаваться новые экземпляры некоего класса под названием "итератор" (и уничтожались бы они тоже при подъеме, если бы мы не в .NET, а в C++ были). Логически набор этих экземпляров эквивалентен стеку в классическом алгоритме. Правильно ?
Остается один вопрос — а что это такое в данном случае — итератор ? Нет, я не спрашиваю, что такое итератор вообще, я хочу понять. что он есть в данном конкретном случае. Все же эффективнее стека найти структуру данных сложно.