Un Trie, également connu sous le nom d'arbre de préfixes, est une structure de données arborescente spécialisée qui est utilisée pour une récupération efficace des informations.
C'est particulièrement utile pour les cas d'utilisation qui impliquent une recherche et une correspondance de préfixes dans des chaînes.
Si je vous parle de l'algorithme de Trie, cet algorithme pourrait vous intéresser ou non
Mais si je vous disais, vous pouvez créer un algorithme de saisie semi-automatique en utilisant ceci. vous serez encore plus enthousiaste à l'idée d'apprendre cela.
Cas d'utilisation de cet algorithme
1. Saisie semi-automatique :
un. Les essais sont souvent utilisés dans les moteurs de recherche ou les éditeurs de texte pour implémenter la fonctionnalité de saisie semi-automatique.
b. Lorsque vous commencez à taper, l'application suggère des complétions possibles en fonction du préfixe que vous avez saisi.
2. Correcteurs orthographiques :
un. Les essais peuvent être utilisés pour implémenter des correcteurs orthographiques. Si un mot n'est pas présent dans le trie, il est probablement mal orthographié.
b. Le trie peut également suggérer des corrections en trouvant des mots similaires.
3. Routage IP :
un. Les essais sont utilisés dans les routeurs pour stocker les tables de routage.
b. Le routeur utilise un essai pour faire correspondre le préfixe le plus long, ce qui détermine le prochain saut d'un paquet.
4. Stockage et recherche efficaces de chaînes :
un. Si vous disposez d'un ensemble de données de chaînes comportant de nombreux préfixes partagés, un trie peut stocker ces chaînes en utilisant moins d'espace que si elles étaient stockées individuellement.
b. L'opération de recherche est également efficace, avec une complexité temporelle proportionnelle à la longueur de la chaîne que vous recherchez.
class Node { constructor() { this.end = false; this.children = {} } } class Trie { constructor() { this.root = new Node (); } insert(word) { let head = this.root; for (let i = 0; i ', current.children); console.log('Possible Auto Complete Values are --->'); for (let key in current.children) { console.log('---> ', word key); } } } const test = new Trie(); test.insert('ant'); test.insert('any'); console.log(test.search('ant')); console.log(test.search('any')); console.log(test.search('anj')); test.autoComplete('an') /* true true false children =---> { t: Node { end: true, children: {} }, y: Node { end: true, children: {} } } Possible Auto Complete Values are ---> ---> ant ---> any */
N'hésitez pas à me contacter si vous avez des préoccupations/questions.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3