예제 #1
0
 public PrefixTreeNode(PrefixTreeNode parent, string prefix, bool isWord)
 {
     Parent = parent;
     Nodes = new List<PrefixTreeNode>();
     Prefix = prefix;
     IsWord = isWord;
 }
예제 #2
0
        public void Append(string word)
        {
            if(word.Length == 0){ return; }

            var node = Nodes.SingleOrDefault(n => word.StartsWith(n.Prefix));

            if(node == null)
            {
                node = new PrefixTreeNode(this, word.Substring(0, 1), word.Length == 1);
                Nodes.Add(node);
            }

            node.Append(word.Substring(1));
        }
예제 #3
0
 public void Clear()
 {
     _root = new PrefixTreeNode(null, "", false);
 }