コード例 #1
0
ファイル: Trie.cs プロジェクト: Ooshy/textualautocomplete
        private bool TryGetNode(string key, out InternalTrieNode node)
        {
            node = root;

            foreach (var c in key)
            {
                if (!node.TryGetNode(c, out node))
                {
                    return(false);
                }
            }

            return(true);
        }
コード例 #2
0
ファイル: Trie.cs プロジェクト: Ooshy/textualautocomplete
            internal InternalTrieNode Add(char key)
            {
                InternalTrieNode childNode;

                if (!children.TryGetValue(key, out childNode))
                {
                    childNode = new InternalTrieNode(key, comparer)
                    {
                        Parent = this
                    };

                    children.Add(key, childNode);
                }

                return(childNode);
            }
コード例 #3
0
ファイル: Trie.cs プロジェクト: Ooshy/textualautocomplete
 internal bool TryGetNode(char key, out InternalTrieNode node)
 {
     return(children.TryGetValue(key, out node));
 }
コード例 #4
0
ファイル: Trie.cs プロジェクト: Ooshy/textualautocomplete
 private void RemoveNode(InternalTrieNode node)
 {
     node.Remove();
     count--;
 }
コード例 #5
0
ファイル: Trie.cs プロジェクト: Ooshy/textualautocomplete
 private static void SetTerminalNode(InternalTrieNode node, TValue value)
 {
     node.IsTerminal = true;
     node.Value      = value;
 }
コード例 #6
0
ファイル: Trie.cs プロジェクト: Ooshy/textualautocomplete
 /// <summary>
 /// Initializes a new instance of the <see cref="Trie{TValue}"/>.
 /// </summary>
 /// <param name="comparer">Comparer.</param>
 public Trie(IEqualityComparer <char> comparer)
 {
     root = new InternalTrieNode(char.MinValue, comparer);
 }