Skip to content

Commit e483259

Browse files
authored
Merge pull request larissalages#19 from Meuman/master
Added a trie data structure to the data_structures/Java folder
2 parents 0563ba3 + 2b4ca62 commit e483259

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

data_structures/Java/trie/Trie.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
public class Trie{
2+
static final int SIZE_OF_ALPHABET = 26;
3+
static class TrieNode{
4+
TrieNode[] children = new TrieNode[SIZE_OF_ALPHABET];
5+
TrieNode(){
6+
isEndOfWord = false;
7+
for (int i = 0; i < SIZE_OF_ALPHABET; i++){
8+
children[i] = null;
9+
}
10+
}
11+
}
12+
static TrieNode root;
13+
14+
static void insert (String key){s
15+
int index;
16+
int level;
17+
TrieNode currentNode = root;
18+
for (level = 0; level < key.length(); level++){
19+
index = key.charAt(level) - 'a';
20+
if (currentNode[index] == null){
21+
currentNode[index] = new TrieNode();
22+
}
23+
currentNode = currentNode.children[index];
24+
}
25+
currentNode.isEndOfWord = true;
26+
}
27+
28+
static boolean search (String searched_string){
29+
TrieNode currentNode = root;
30+
for (int level = 0; level < searched_string.length(); level++){
31+
int index = searched_string.charAt(level) - 'a';
32+
if (currentNode.children[index] != null){
33+
currentNode = currentNode.children[index]
34+
} else {
35+
return false;
36+
}
37+
}
38+
return (currentNode != null && currentNode.isEndOfWord == true)
39+
}
40+
}

0 commit comments

Comments
 (0)