public static void PrintNodes(TrieNodeUsingDictionary n, string searchString) { if (n.Leaf) { Console.WriteLine(searchString); } foreach (KeyValuePair <char, TrieNodeUsingDictionary> t in n.Nodes) { TrieNodeUsingDictionary.PrintNodes(t.Value, searchString + t.Key); } }
public TrieNodeUsingDictionary Search(string s) { char[] cArray = s.ToCharArray(); TrieNodeUsingDictionary n = this; foreach (char c in cArray) { n.Nodes.TryGetValue(c, out n); if (n == null) { return(null); } } return(n); }
public static void MainTest() { TrieNodeUsingDictionary n = new TrieNodeUsingDictionary(); n.Insert("CAT"); n.Insert("CAG"); n.Insert("DOG"); n.Insert("DOT"); n.Insert("DOooo"); n.Insert("Dott"); string searchString = "Do"; n = n.Search(searchString); TrieNodeUsingDictionary.PrintNodes(n, searchString); }
public void Insert(string s) { char[] cArray = s.ToCharArray(); TrieNodeUsingDictionary n = this; foreach (char c in cArray) { TrieNodeUsingDictionary temp; n.Nodes.TryGetValue(c, out temp); if (temp == null) { temp = new TrieNodeUsingDictionary(); n.Nodes.Add(c, temp); } n = temp; } n.Leaf = true; }