Abstract Data Type
Abstract Data Type
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 .
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.
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.
Data Structure
A construct that is defined in a program language to store collection of data. Examples: arrays
Data Abstraction: Results in wall of ADT operations between data structures and the program that access the data within this data structure.
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.)
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
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
Contd..
dc.elements();
dc.size(); dc.isEmpty();
dc.get(1);
Contd..
dc.remove(1); dc.equals(key1,key2);
Removes the key and its associated value from the dictionary.
Thank You.