Can someone clarify the exact difference between abstract data type(ADT) and concrete data structure. As I am reading the book(Anany Levitin, Design and Analysis of Algorithms), it states that ADT is a data structure plus set of operations on them. However, what confuses me is that, Arrays and Linked Lists also have some certain operations defined on them(e.g adding element,deleting element) and they are considered as concrete data types. Due to that confusion, I cannot decide a new data structure for me(e.g heap, tree, binary search tree) to be abstract or concrete by myself.