Обходим рекурсивно всё дерево haystack.
К каждому элементу применяем фукнцию сравнения структур,
которая в свою очередь рекурсивно обходит needle и проверяет наличие каждого подэлемента needle с соответствующим подэлементом рассматриваемого элемента haystack. В случае совпадения добавляем элемент в результирующий массив, который в конце возвращаем. Ничего сложно в написании (правда, занимает время).
|