示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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;
        }