public TrieNode(char k, ArrayList s, TermDescr t) { keyChar = k; subTrie = s; termRec = t; }
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; } }
private void AddToIndices(TermDescr td) { int k = indices.BinarySearch(td.IVal); indices.Insert((k < 0) ? ~k : k, td); }
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; }