Trie Tree
public class Trie {
final int APHABET_SIZE = 26;
TrieNode root;
class TrieNode {
TrieNode[] children = new TrieNode[APHABET_SIZE];
boolean isEndOfWord;
TrieNode() {
isEndOfWord = false;
for (int i = 0; i < APHABET_SIZE; i++)
children[i] = null;
}
};
void insert(String key) {
int level;
int lenght = key.length();
int index;
TrieNode pCrawl = root;
for (level = 0; level < length; level++) {
index = key.charAt(level) - 'a';
if (pCrawl.children[index] == null) {
pCrawl.children[index] = new TrieNode();
}
pCrawl = pCrawl.children[index];
}
pCrawl.isEndOfWord = true;
}
boolean search(String key) {
int level;
int length = key.length();
int index;
TrieNode pCrawl = root;
for (level = 0; level < length; level++) {
index = key.charAt(level) - 'a';
if (pCrawl.children[index] == null) {
return false;
}
pCrawl = pCrawl.children[index];
}
}
}Last updated
Was this helpful?