public PrefixTreeNode(PrefixTreeNode parent, string prefix, bool isWord) { Parent = parent; Nodes = new List<PrefixTreeNode>(); Prefix = prefix; IsWord = isWord; }
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)); }
public void Clear() { _root = new PrefixTreeNode(null, "", false); }