Abstract Data Type

CSL 102; Data Structures; IIIT Nagpur; Created by: Dr. Aniket Pingley

Motivation
Let us take two everyday examples as follows:

In both the examples above, the internal functioning of the system is abstracted for the user. Instead, an interface to the complex systems, i.e. steering wheel, gearbox, remote control etc. is made available to the user. The expected output for an action or a series of action is well-defined/documented.

Designing a good interface that is lucid and intuitive having well-defined mapping of actions to outcome is a good characteristic of any software. It is often that a sophisticated software application is created by developing several modules independentely first and then plugged together. Thus, it is important that every module and the pieces of functionality inside it also demonstrate the aforesaid characteristic.


The meaning of Abstraction

Loosely speaking, abstraction is a sum-total of a four principles of software development. They are as follows:

In the following image below it can be clearly seen that an ADT has an interface exposed to the client/user. However, the internals of the ADT, such as base data structures, e.g. array are hidden/internal/encapsulated.

Image source: https://sarick.me/


Operations on ADT Following operations are listed that can be performed on an ADT from the perspective of C programming language.



HOME   PREV   NEXT