Esempio n. 1
0
 public TrieNode(char k, ArrayList s, TermDescr t)
 {
     keyChar = k;
     subTrie = s;
     termRec = t;
 }
Esempio n. 2
0
            public bool FindCharInSubtree(char c, out TermDescr termRec)
            {
                int k;

                k = (currSub == null) ? -1 : k = currSub.BinarySearch(c);

                if (k >= 0)
                {
                  termRec = TrieNode.Match.TermRec;
                  currSub = TrieNode.Match.SubTrie;
                  return true;
                }
                else
                {
                  termRec = null;
                  return false;
                }
            }
Esempio n. 3
0
 private void AddToIndices(TermDescr td)
 {
     int k = indices.BinarySearch(td.IVal);
     indices.Insert((k < 0) ? ~k : k, td);
 }
Esempio n. 4
0
            public bool Find(string key, out TermDescr trec)
            {
                if (key == null || key == "")
                  throw new Exception("*** Trie.Add: Attempt to search for a null- or empty key");

                int imax = key.Length - 1;
                int i = 0;

                trec = null;
                curr = root.SubTrie;

                while (curr != null)
                {
                  if (curr.BinarySearch(key[i]) < 0) { curr = null; return false; }
                  if (i++ == imax) return ((trec = TrieNode.Match.TermRec) != null);
                  curr = TrieNode.Match.SubTrie;
                }
                return false;
            }