a logical description of how the data is viewed and the operations that can be performed on it, but how this is done is not necessarily known to the user.
it's up to the programmer who creates the data structure to decide how to implement it, and it may be built into the programming language. This is a good example of data abstraction. by providing this level of abstraction we are creating an encapsulation around the data.
+ can easily be shown in graphical form.
+ its not hard to understand how to perform operations such as adding, deleting, or counting elements in each structure.