У меня есть две древовидные структуры, которые представляют моментальные снимки структуры каталогов в два разных момента времени. Каталоги могут быть добавлены, удалены или изменены между снимками. Мне нужно пройтись по двум деревьям одновременно и пометить новое с различиями между ними - то есть пометить узлы как Новые, Модифицированные, Удаленные, Без изменений, добавив любые удаленные узлы, чтобы конечный результат был полным надмножеством двух снимков.
Как правило, деревья, вероятно, имеют глубину около 10, но очень широкие, содержащие сотни тысяч, а возможно, и миллионы узлов. Я хочу пропустить большие куски деревьев, сравнивая хеш-коды на каждом узле и продолжая повторять только там, где коды не совпадают.
Есть ли алгоритм, который мог бы быть моим другом здесь? Любой другой совет?