Patent ID: 7634470

Claim:
A computer-implemented method of determining if a query element is included in a set of elements comprising one or more elements from a first domain having a character set of “m” characters and “Z” is the maximum possible length of an element in the first domain, the method comprising: providing a processor and associated memory; using the processor to build a data structure based upon the set of elements, the data structure comprising “Z” memory structures, each memory structure comprising “m” slots, each slot comprising a first memory location and an array of memory locations, each array of memory locations comprising “(m+1)” memory locations; storing the data structure using the memory; receiving information identifying the query element; and using the data structure to determine if the query element is included in the set of elements such that the number of comparisons needed to determine if the query element is included in the set of elements is proportional to a length of the query element and independent of the number of elements in the set of elements; wherein building the data structure based upon the set of elements comprises: initializing the first memory location and memory locations in the array of memory locations of each slot in each memory structure to null values; for each element “R” in the set of elements, where R=c 1 c 2 , . . . c f for some f≦Z, for each c i where 1≦i≦f: if (“i”<“f”): storing a non-null value in a memory location corresponding to character c i+1 in the array of memory locations of the slot corresponding to c i of memory structure i; and if(“i” is equal to “f”): storing a non-null value in the (m+1) th memory location of the array of memory locations of the slot corresponding to c i of memory structure i; and storing a reference to element “R” in the first memory location of the slot corresponding to c i of memory structure i.