Идея здесь, вероятно, в том, что коллизии хешей хороши: вы вычисляете хеш (например, добавляя значения ASCCI первых трех символов; но это вряд ли можно квалифицировать как "хеш" в реальном мире) и сравниваете хэши,Если они равны, вы делаете (более дорогой) сравнение строк.Нравится:
int compare(Node *left, Node *right) {
if (left->hash == right->hash) {
return stringCompare(left, right);
}
if (left->hash < right->hash) {
return -1;
} else {
return 1;
}
}