public static IEnumerable <string> search(string oriWord, int maxDist, TrieDictionary dict)
        {
            LenvstnNFA nfa = LenvstnNFA.BuildNFA(oriWord, maxDist);
            //nfa.Show();
            LenvstnDFA dfa = SubsetMachine.SubsetConstruct(nfa);
            //dfa.Show();
            List <string> output = new List <string>();

            DFSserach(dfa, dfa.start, dict.Root, output);
            return(output);
        }
        public static IEnumerable <string> search(string oriWord, int maxDist, TrieDictionary dict)
        {
            LenvstnNFA nfa = LenvstnNFA.BuildNFA(oriWord, maxDist);

            Console.WriteLine("-------------- NFA ----------------------");

            Console.WriteLine(nfa.ToDotGraph());

            Console.WriteLine("-------------------------------------");

            LenvstnDFA dfa = SubsetMachine.SubsetConstruct(nfa);

            Console.WriteLine("------------------ DFA -----------------------");
            Console.WriteLine(dfa.ToDotGraph());

            Console.WriteLine("-------------------------------------");

            List <string> output = new List <string>();

            DFSserach(dfa, dfa.start, dict.Root, output);
            return(output);
        }