Abstract data types are purely theoretical entities, used (among other things) to simplify the description of abstract algorithms, to classify and evaluate data structures, and to formally describe the type systems of programming languages.
The term abstract data type can also be regarded as a generalized approach of a number of algebraic structures, such as lattices, groups, and rings [REF].