Допустим, я хотел, чтобы все узлы, чьи родители соответствовали определенному условию.
Есть ли приемлемый способ сделать это, кроме проверки каждого узла и построения объекта результатов, полного либо узлов, либо поддеревьев?
Если дерево каким-либо образом не отсортировано или не проиндексировано на основе условия поиска, вы не можете обрезать обход дерева (например, вы не можете решить не брать нужного потомка в каком-то конкретном узле, например).Поэтому у вас нет выбора, кроме как пройти по всему дереву.
Вот и все.Вам просто нужно получить доступ к каждому узлу, чтобы увидеть, соответствует ли он критериям.
Но есть несколько способов ускорить его: