Пример #1
0
        public void Add([NotNull] string value)
        {
            TrieNode node;
            if (!_nodes.TryGetValue(value[0], out node))
            {
                node = new TrieNode(value[0], value.Length == 1 ? value : null, null);
                _nodes.Add(value[0], node);
            }
            else
            {
                if (value.Length == 1)
                {
                    node.Value = value;
                }
            }

            for (var i = 1; i < value.Length; i++)
            {
                node = node.Add(value[i], i == value.Length - 1 ? value : null);
            }
        }
Пример #2
0
 public TrieNode Add(char ch, [CanBeNull] string value)
 {
     TrieNode node;
     if (!_nodes.TryGetValue(ch, out node))
     {
         node = new TrieNode(ch, value, this);
         _nodes.Add(ch, node);
     }
     else
     {
         if (value != null)
         {
             node.Value = value;
         }
     }
     return node;
 }