Vous êtes sur la page 1sur 20

Abstract Data Type

MSIT
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.
Real time example
 Human manage complexity through abstraction.

 People don’t 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.
Abstract data type
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.)
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(Objecy 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. value
key

 Create an instance for dictionary class


Dictionary dc = new Dictionary();
1 ramu
To insert values into the dictionary .
dc.put(1,”ramu”); 2 ajay
dc.put(2,”ajay”);
Contd..
 dc.elements();
Returns an enumeration of the elements in the
dictionary.
• dc.size();

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


• dc.isEmpty();

Returns true if the dictionary is empty.


• dc.get(1);

Returns the value associated with this key i.e.


ramu.
Contd..
 dc.remove(1);
Removes the key and its associated value
from the dictionary.
 dc.equals(key1,key2);

Compares key1 with key2.


Program

Vous aimerez peut-être aussi