1. A method of storing a data string in a structured form, the method including the steps of: dividing the data into as many complete subsets of predetermined length as possible with any remainder being designated as a postfix; arranging the subsets of data into a tree structure with nodes joined by edges representing one or more of the subsets; determining, for each edge in said tree, a prefix table which is a list of all possible prefixes for that subset within the data of lengths less than said predetermined length; and storing the subsets, the tree structure, the prefix tables and the postfix.