접두사 트리라고도 알려진 트리는 문자열을 저장하고 검색하는 데 사용되는 효율적인 트리형 데이터 구조입니다. 문자열 검색, 접두사 일치, 자동 완성 기능과 관련된 작업에 특히 유용합니다.
시도는 다음과 같은 상황에서 이상적입니다.
"cat", "car", "dog"라는 단어가 포함된 트리를 시각화해 보겠습니다.
root / | \ c d ... / | a o / \ | t r g
각 노드는 문자를 나타내며, 루트에서 리프 노드까지의 경로는 완전한 단어를 구성합니다.
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
Tries는 특히 공통 접두사가 있는 대규모 단어 집합을 처리할 때 문자열 관련 작업에 탁월한 성능을 제공합니다. 빠른 조회와 접두사 일치 기능을 제공하므로 자동 완성 시스템, IP 라우팅 테이블, 사전 구현과 같은 다양한 애플리케이션에서 매우 유용합니다.
이 튜토리얼이 마음에 드셨다면 여기와 X/Twitter(@turckalicious)에서 저를 팔로우하세요. 이 기사는 더 빠르게 조사하고, 작성하고, 반복하는 데 도움이 되는 AI 기반 대화형 문서 편집기인 Wonderfall(https://wonderfall.xyz)의 도움으로 작성되었습니다.
위 내용은 문자열 검색에 대해 알고 있는 모든 것을 잊어버리십시오 - 시도는 당신의 마음을 사로잡을 것입니다!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!