Skip to content

Commit ca8c935

Browse files
Merge pull request #399 from tantrumXO/master
Added Trie
2 parents feab252 + 500921b commit ca8c935

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

Data Structures/Trie/trie.java

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
public class Trie {
2+
3+
static final int ALPHABET_SIZE = 26;
4+
5+
static class TrieNode
6+
{
7+
TrieNode[] children = new TrieNode[ALPHABET_SIZE];
8+
9+
boolean isEndOfWord;
10+
11+
TrieNode(){
12+
isEndOfWord = false;
13+
for (int i = 0; i < ALPHABET_SIZE; i++)
14+
children[i] = null;
15+
}
16+
};
17+
18+
static TrieNode root;
19+
20+
static void insert(String key)
21+
{
22+
int level;
23+
int length = key.length();
24+
int index;
25+
26+
TrieNode pCrawl = root;
27+
28+
for (level = 0; level < length; level++)
29+
{
30+
index = key.charAt(level) - 'a';
31+
if (pCrawl.children[index] == null)
32+
pCrawl.children[index] = new TrieNode();
33+
34+
pCrawl = pCrawl.children[index];
35+
}
36+
37+
pCrawl.isEndOfWord = true;
38+
}
39+
40+
static boolean search(String key)
41+
{
42+
int level;
43+
int length = key.length();
44+
int index;
45+
TrieNode pCrawl = root;
46+
47+
for (level = 0; level < length; level++)
48+
{
49+
index = key.charAt(level) - 'a';
50+
51+
if (pCrawl.children[index] == null)
52+
return false;
53+
54+
pCrawl = pCrawl.children[index];
55+
}
56+
57+
return (pCrawl != null && pCrawl.isEndOfWord);
58+
}
59+
}

0 commit comments

Comments
 (0)