[Semi débutant] Arbre de chaines
Le
Nicolas Cherel
Bonjour,
J'aurais besoin de créer un dictionnaire sous forme d'arbre
du style :
aux //aux
| |-tant //autant
|-imé //aimé
| | |-e //aime
| |-e //aie
|-près //après
Cela me permettrait de faire des recherche de correspondances rapides.
(je voudrais éviter de faire la correspondance sur de nombreux mots
commançant pareil)
Cela a t'il déjà implémenté ?
Y a t'il une structure de donnée de l'API qui me permettrait de faire ca
facilement ?
Merci d'avance
J'aurais besoin de créer un dictionnaire sous forme d'arbre
du style :
aux //aux
| |-tant //autant
|-imé //aimé
| | |-e //aime
| |-e //aie
|-près //après
Cela me permettrait de faire des recherche de correspondances rapides.
(je voudrais éviter de faire la correspondance sur de nombreux mots
commançant pareil)
Cela a t'il déjà implémenté ?
Y a t'il une structure de donnée de l'API qui me permettrait de faire ca
facilement ?
Merci d'avance

Poser une question


pourquoi ne pas simplement utiliser un HashSet ou HashMap, avec le mot comme
clé ?
Ca ira sans doute plus vite qu'un arbre en performances et y a rien a coder.
"Nicolas Cherel" news:422632af$0$32270$
Si le but est d'obtenir une liste des mots ayant un certain préfixe, il
serait surement moins gourmand en mémoire et plus performant de garder un
tableau trié des mots et d'effectuer deux recherches binaires :
- Le plus grand index i tel que mots[i] < prefixe
- Le plus petit index i tel que prefixe < mots[i]
L'opérateur < utilisé étant une comparaison lexicographique en se limitant à
la taille du plus petit des mots.
L'ensemble des mots ayant le préfixe est entre les deux indexes.
Programmer ca ne devrait pas être très compliqué (ArrayList, sort, je pense
qu'il faut faire l'algo de recherche binaire à la main par contre)
--
Vincent
Bien vu, et merci, je n'y avait pas pensé...