Bonjour,
on nous demande la programmation de hash table, ça concerne la gestion des maillages triangulaires (la fonction utilisera les pointeurs). Quelqu'un a une idée de quoi il s'agit exactement, et comment commencer au moins ?
Bonjour,
on nous demande la programmation de hash table, ça concerne la gestion des maillages triangulaires (la fonction utilisera les pointeurs). Quelqu'un a une idée de quoi il s'agit exactement, et comment commencer au moins ?
Devant l'avalanche de réponse, je vais tenter de t'aiguiller...
Un Hash Table est une forme d'index. L'idée est qu'à partir d'une clé, tu calcule un HashPosition et tu trouve ou enregistre la valeur à la position HashPos de la HashTable.
La fonction qui converti la clé en position peut être un peu n'importe quoi, mais il existe beaucoup de théorie sur le sujet. Par exemple,
hp = mod(clé, size(HashTable))
Valur = HashTable(hp)
La qualité de la fonction vient de sa capacité à disperser les positions dans la table et à réduire les risques de conflit (2 clés ayant la même position). En pratique, la gestion des conflits rend les algorithmes beaucoup plus compliqués que l'exemple ci-haut. De plus, pour une raison que j'ai oublié, il est plus efficace d'avoir une table dont la dimension est un nombre premier.
Si tu cherche "Hash" dans la page suivante, tu trouveras des exemples :
http://users.bigpond.net.au/amiller/
Partager