You are on page 1of 19

Abstract Data Type

Submitted To: Nitesh Dubey Sir Submitted By: Ankit Agrawal

Agenda

Abstraction Real time example Definition of Abstract Data Type Difference between abstract data type and data structure Different ADTs Dictionary ADT Operations in Dictionary ADT.

Abstraction

Hiding unnecessary details is known as abstraction. Only presenting an interface , not the implementation part .

i.e. only an interface is shown and implementation part is hidden .


An essential element of object oriented programming is abstraction.

Abstraction Continued
Any type that does not specify an implementation is an abstract data type. For instance, a stack (which is an abstract type) can be implemented as an array (a contiguous block of memory containing multiple values), or as a linked list (a set of non-contiguous memory blocks linked by pointers).

Abstract types can be handled by code that does not know or "care" what underlying types are contained in them.

Real time example

Human manage complexity through abstraction. People dont think of a car as combination of tens of thousands of parts. But as a single well defined object. This abstraction allows humans to drive the car easily without being overwhelmed by the complexity of the parts that form a car.

Contd..

User just need to know about the parts and their operations. How to use the steering, breaks, gears, etc But, not concerned with the Mechanisms of Steering, breaks and gears. To turn left, rotate the steering towards left side. Same thing applies to ADTs. User should be knowing about the various functions in an ADT and what are the parameters he need to pass to call a function.

Difference between Abstract Data Type and Data Structure.

Data Structure

A construct that is defined in a program language to store collection of data. Examples: arrays

ADTs and Data Structures are not the same.


Data Abstraction: Results in wall of ADT operations between data structures and the program that access the data within this data structure.

Example for difference.

Separation of interface from implementations

When realized in a computer program, the ADT is represented by an interface, which shields a corresponding implementation.

Users of an ADT are concerned with the interface, but not the implementation, as the implementation can change in the future. (This supports the principle of information hiding, or protecting the program from design decisions that are subject to change.)

Difference between Abstract data type and abstract data structure

There is a distinction, although sometimes subtle, between the abstract data type and the data structure used in its implementation. For example, a List ADT can be represented using an array-based implementation or a linked-list implementation. A List is an abstract data type with well-defined operations (add element, remove element, etc.) while a linked-list is a pointer-based data structure that can be used to create a representation of a List.

Contd..

Similarly, a Binary Search Tree ADT can be represented in several ways: binary tree, AVL tree, red-black tree, array, etc. Regardless of the implementation, the Binary Search Tree always has the same operations (insert, remove, find, etc.)

ADT

Abstract data types (ADT) typically seen in textbooks and implemented in programming languages (or their libraries) include:
Associative array Dictionary Complex number Priority queue Container Dequeue List Queue

Set
Multimap Stack String Tree

Dictionary

Searching for the meaning of a word.

Each word in the dictionary has associated meaning.


Here the word is the key, meaning is the value. All the words are arranged in alphabetical order , which makes retrieving of data easy and efficient. Same thing applies to Dictionary in Java. But, implementation part i.e. arrangement of data differs from one data structure to another.

Dictionary(ADT)

The Dictionary class is the abstract parent of any class, such as Hash table, which maps keys to values. Every key and every value is an object. In any one Dictionary object, every key is associated with at most one value. Given a Dictionary and a key, the associated element can be looked up.

Methods.

Dictionary() is the constructor to create object for this class. The various operations that could be performed are elements(), get(Object key) , isEmpty() ,keys(), put(key k,value v), remove(object key), size() etc

For example:

Consider student details like roll as key and name as value. Create an instance for dictionary class Dictionary dc = new Dictionary();

key

value

1
2

XYZ
ABC

To insert values into the dictionary . dc.put(1,XYZ); dc.put(2,ABC);

Contd..

dc.elements();

Returns an enumeration of the elements in the dictionary.

dc.size(); dc.isEmpty();

Returns the size of the structure i.e. value 2.

Returns true if the dictionary is empty.

dc.get(1);

Returns the value associated with this key i.e. XYZ.

Contd..

dc.remove(1); dc.equals(key1,key2);

Removes the key and its associated value from the dictionary.

Compares key1 with key2.

Thank You.

You might also like