Typical programming languages such as Pascal, C or Java give primitive data kinds such as integers, boolean, reals values and strings. They give these to be organised into arrays, where the arrays usually have statically determined size. It is also common to give for record data types, where an instance of the kinds contains a number of elements, or possibly pointers to other data. C, in particular, gives the user to work with a fairly low-level idea of a pointer to a piece of data. A "Data Structure" will be operated in terms of these language-level constructs, but will usually be thought of in association with a collection of operations that can be performed with it and a number of consistency functions which must always hold. One answer of this will be the structure "Sorted Vector" which may be thought of as just a normal array of values but subject to the extra constraint that the numbers must be in ascending order. Having such a data structure may create some operations simpler, but setting up and preserving the constraint may add work.
Frequently the construction of an algorithm adds the design of data struc-tures that give e?cient support and natural for the most important steps used in the algorithm, and this data structure then invokes for further code design for the implementation of other necessary but minimum frequently performed functions.