An ADT is a way of looking at a data structure. A computer programmer uses abstraction to focus on what it does rather than how it does its work in order to deal with difficult challenges. ADTs are entirely theoretical entities that are used to ease the description of algorithms and to categorize and assess data structures.