The 1970's saw the development of the idea of an abstract data type. An ADT is a programmer defined data type that can be manipulated in a fashion similar to system-provided data types. This means that it must be possible to create, or instantiate, many different copies of the data type. The user can manipulate the data type used only a limited set of provided operations, without knowledge of the internal representation.
The most important aspect of the ADT concept was not that it was applied to data structures, but that the operations of the data structure were characterized by the service they provided, and not by their implementation. This was an important step in the direction of object-oriented programming.