Чтобы вычислить хеш, вы должны полностью пройти оба дерева. Вы должны изучить свойства каждого узла и выполнить вычисление хеша. Например, если String
находится в узле, вы должны перебрать его символы и выполнить некоторую математику. Затем вы должны объединить хеш узла с хешем других.
Итак, вычисление значения хеш-функции для двух структур того же порядка (возможно, немного дороже), чем сравнение их на равенство один раз. Фактически, поскольку при выполнении сравнения на равенство вы можете остановиться, как только обнаружите какую-либо разницу, один тест на равенство будет в среднем намного быстрее.
Хеширование может быть полезным только в том случае, если вы кешируете хеш-значение и используете его много раз. И помните, поскольку хеш-значения для разных деревьев могут конфликтовать, вам все равно нужно реализовать сравнение на равенство.