91
Поиск в глубину
Поиск в глубину
Существует несколько способов разумного обхода дерева.
Мы начнем с поиска в глубину (depth-first search, DFS). По-
иск начинается с корня дерева и выбора первого дочернего
узла. Если у последнего есть дети, то снова выбирается первый
дочерний узел. Когда попадается вершина без детей, нужно
вернуться, перемещаясь вверх по дереву к родительскому узлу,
где выбирается следующий ребенок, если он есть. В противном
случае нужно снова вернуться. Когда исследован последний
дочерний узел корня, обход завершается.
Есть два общепринятых способа реализации поиска в глубину:
рекурсивный и итеративный. Рекурсивная реализация проста
и элегантна:
private static void recursiveDFS(Node node) {
if (node instanceof TextNode) {
System.out.print(node); ...