예제 #1
0
파일: Trie.cs 프로젝트: ngokchau/pa2
 private void DFS(Node current, StringBuilder sb)
 {
     foreach (char c in current.children.Keys)
     {
         if (this.suggestions.Count < 10)
         {
             sb.Append(c);
             if (current.ChildNode(c).isWord)
             {
                 this.suggestions.Add(sb.ToString());
             }
             DFS(current.ChildNode(c), sb);
             sb.Remove(sb.Length - 1, 1);
         }
     }
 }
예제 #2
0
파일: Trie.cs 프로젝트: ngokchau/pa2
        private void Search(Node current, char[] prefix, int index, StringBuilder sb)
        {
            if (index < prefix.Length && current.children.ContainsKey(prefix[index]))
            {
                sb.Append(prefix[index]);

                current = current.ChildNode(prefix[index]);
                Search(current, prefix, index + 1, sb);
            }
            else
            {
                if (current.isWord)
                {
                    this.suggestions.Add(sb.ToString());
                }
                DFS(current, sb);
            }
        }