public Trie() { _root = new TrieNode(); }
public void DFS( TrieNode tmpTrieNode, int index, string prefix ) { if( total_string_num > 15 ) return ; if( tmpTrieNode.isWord && index >= prefix.Length) { Console.WriteLine( tmpTrieNode.desc ); total_string_num ++ ; str_list.Add( tmpTrieNode.desc ); } if ( index < prefix.Length && tmpTrieNode.children.ContainsKey(prefix[index ]) ) { DFS(tmpTrieNode.children[prefix[index]], index + 1 ,prefix ); } if( index >= prefix.Length ){ Console.Write( prefix ) ; foreach( KeyValuePair< char, TrieNode > pair in tmpTrieNode.children ) DFS( pair.Value, index, prefix ) ; return; } }