File tree Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments