Abstract Data Type:
Let us consider Gmail.
We can do lot of operation with Gmail such as Create Account, Signin, Compose, Send, etc.,
We know the required details to Create an account.
We know the required details to Signin to Gmail.
We know the required details to Compose and Send mail.
But we don't know how these operations are functioning in background.
we don't know how Google team handling these operation to give you the required output.
Implementation of operation is always hidden to the user.
Let us assume Gmail as abstract data type. We can say Gmail is an object with operations such as create account, signin, compose, send, etc.,
* Existing in thought or as an idea but not having a physical or concrete existence.
* Consider something theoretically or separately from (something else).
* A summary of the contents of a book, article, or speech.
Abstratct Data Type:
* An abstract data type is a type with associated operations, but whose representation is hidden.
* Objects such as lists, sets, and graphs, along with their operations, can be viewed as abstract data types.
* The basic idea is that the implementation of these operations is written once in the program, and any other part of the program that needs to perform an operation on the ADT can do so by calling the appropriate function.
* If for some reason implementation details need to change, it should be easy to do so by merely changing the routines that perform the ADT operations. This change, in a perfect world, would be completely transparent to the rest of the program.
Data Structures and Algorithm Analysis in C by Mark Allen Weiss.