En plus de tous les autres bons commentaires:
Les tables de hachage en général ont un meilleur comportement du cache, nécessitant moins de lectures de mémoire par rapport à un arbre binaire. Pour une table de hachage, normalement, vous n'engagera qu'une seule lecture avant d'avoir accès à une référence de la tenue de vos données. L'arbre binaire, si elle est équilibrée variante, exige quelque chose de l'ordre de k * lg(n) de la mémoire de lit pour une constante k.
D'autre part, si un ennemi qui sait votre fonction de hachage que l'ennemi peut faire exécuter votre table de hachage pour faire des collisions, entravent considérablement ses performances. La solution de contournement est de choisir la fonction de hachage au hasard d'une famille, mais un BST n'a pas cet inconvénient. Aussi, lorsque la table de hachage la pression augmente trop, vous avez souvent tendance à enlargen et de réaffecter la table de hachage qui peut être une opération coûteuse. Le BST a plus simple comportement ici et n'a pas tendance à soudainement allouer beaucoup de données et de faire une redéfinition de l'opération.
Les arbres ont tendance à être l'ultime moyen de structure de données. Ils peuvent agir comme des listes, peuvent être divisés en parallèle rapide de suppression, d'insertion et de recherche sur l'ordre de O(lg n). Ils ne font rien en particulier , mais ils n'ont pas trop mauvais comportement.
Enfin, techniciennes se chargent sont beaucoup plus faciles à mettre en œuvre (pur), les langages fonctionnels par rapport à hash-tables et ils ne nécessitent pas de mises à jour destructive pour être mis en œuvre (la persistance de l' argument de Pascal ci-dessus).