Пример итерации дерева приведен в команде Find
, которая вызывает функцию Traversal
.
foreach (TreeNode<T> Item in Traversal(Root))
Функция Traversal
будет итеративно возвращать элементы в дереве в порядке глубины, слева направо.Если вы посмотрите на код Traversal
, он рекурсивно вызывает себя с левой стороны, а затем рекурсивно с правой стороны.
Traversal
возвращает все дерево в итерируемом объекте, где элементы упорядочены по глубине, слева направо.Команда Find
просто перебирает каждую из них, и когда она достигает совпадения, она выходит из цикла.По сути, Traversal
возвращает упорядоченный повторяемый элемент, Find
просматривает этот список в поисках совпадения.Find
действительно даже не нужно знать, ищет ли он список, дерево или что-то еще.Просто нужно что-то перебрать, чтобы найти совпадение.