Maison > Article > interface Web > Oubliez tout ce que vous savez sur la recherche de chaînes – les essais vous épateront !
Un trie, également connu sous le nom d'arbre de préfixes, est une structure de données arborescente efficace utilisée pour stocker et récupérer des chaînes. Il est particulièrement utile pour les tâches impliquant des recherches de chaînes, la correspondance de préfixes et la fonctionnalité de saisie semi-automatique.
Les essais sont idéaux dans les scénarios où vous devez :
Visualisons un trie contenant les mots « chat », « voiture » et « chien » :
root / | \ c d ... / | a o / \ | t r g
Chaque nœud représente un caractère et les chemins allant de la racine aux nœuds feuilles forment des mots complets.
Implémentons une structure trie de base en JavaScript :
class TrieNode { constructor() { this.children = {}; this.isEndOfWord = false; } } class Trie { constructor() { this.root = new TrieNode(); } // Insert a word into the trie insert(word) { let node = this.root; for (let char of word) { if (!node.children[char]) { node.children[char] = new TrieNode(); } node = node.children[char]; } node.isEndOfWord = true; } // Search for a word in the trie search(word) { let node = this.root; for (let char of word) { if (!node.children[char]) { return false; } node = node.children[char]; } return node.isEndOfWord; } // Check if any word starts with the given prefix startsWith(prefix) { let node = this.root; for (let char of prefix) { if (!node.children[char]) { return false; } node = node.children[char]; } return true; } } // Example usage const trie = new Trie(); // Insert words trie.insert("apple"); trie.insert("app"); trie.insert("banana"); console.log(trie.search("apple")); // Output: true console.log(trie.search("app")); // Output: true console.log(trie.search("appl")); // Output: false console.log(trie.startsWith("app")); // Output: true console.log(trie.startsWith("ban")); // Output: true console.log(trie.startsWith("cat")); // Output: false
Les essais offrent d'excellentes performances pour les opérations liées aux chaînes, en particulier lorsqu'il s'agit d'un grand nombre de mots avec des préfixes communs. Ils fournissent des recherches rapides et une correspondance de préfixes, ce qui les rend inestimables dans diverses applications telles que les systèmes de saisie semi-automatique, les tables de routage IP et les implémentations de dictionnaires.
Si vous avez aimé ce tutoriel, suivez-moi ici et sur X/Twitter à @turckalicious. Cet article a été réalisé avec l'aide de Wonderfall (https://wonderfall.xyz), un éditeur de documents interactif alimenté par l'IA qui vous aide à rechercher, écrire et itérer plus rapidement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!