0% found this document useful (0 votes)
29 views

Abstract Data Types

Uploaded by

kethanr.brn
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Abstract Data Types

Uploaded by

kethanr.brn
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

Java Arrays Java Strings Java OOPs Java Collection Java 8 Tutorial Java Multithreading Java Exception Handling Java Programs Java Project

Solve Coding Problems


Abstract Data Types
Share Your Experience Last Updated : 23 Sep, 2023
Abstract Data Types In this article, we will learn about ADT but before
understanding what ADT is let us consider different
C++ Data Types
in-built data types that are provided to us. Data types
Java Data Types such as int, float, double, long, etc. are considered to
be in-built data types and we can perform basic
Boolean Data Type operations with them such as addition, subtraction,
division, multiplication, etc. Now there might be a
Map Abstract Data
Type situation when we need operations for our user-
defined data type which have to be defined. These
Dart - Data Types operations can be defined only as and when we

C# | Data Types require them. So, in order to simplify the process of


solving problems, we can create data structures along
SAP ABAP | Data Types with their operations, and such data structures that
are not in-built are known as Abstract Data Type
MATLAB - Data Types
(ADT).
Data Types in C Abstract Data type (ADT) is a type (or class) for
We use cookies to ensure you have the best browsing
objects whose experience
behavioronisourdefined
website. Bybyusing our of
a set site,values
you acknowledge that you have read
Scala | Abstract Type Got It !
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 1/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

members and a set of operations. The definition of ADT only


mentions what operations are to be performed but
not how these operations will be implemented. It
does not specify how data will be organized in
memory and what algorithms will be used for
implementing the operations. It is called “abstract”
because it gives an implementation-independent
view.

The process of providing only the essentials and


hiding the details is known as abstraction.

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 2/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

The user of data type does not need to know how


that data type is implemented, for example, we have
been using Primitive values like int, float, char data
types only with the knowledge that these data type
can operate and be performed on without any idea of
how they are implemented.

So a user only needs to know what a data type can


do, but not how it will be implemented. Think of ADT
as a black box which hides the inner structure and
design of the data type. Now we’ll define three ADTs
namely List ADT, Stack ADT, Queue ADT.

1. List ADT

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 3/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

Vies of list

The data is generally stored in key sequence in a


list which has a head structure consisting of count,
pointers and address of compare function needed
to compare the data in the list.
The data node contains the pointer to a data
structure and a self-referential pointer which
points to the next node in the list.
The List ADT Functions is given below:
get() – Return an element from the list at any given
position.
insert() – Insert an element at any position of the
list.
remove() – Remove the first occurrence of any
element from a non-empty list.
removeAt() – Remove the element at a specified
location from a non-empty list.
replace() – Replace an element at any position by
another element.
size() – Return the number of elements in the list.
isEmpty() – Return true if the list is empty,
otherwise return false.
isFull() – Return true if the list is full, otherwise
We use cookies to ensure you have thereturn
best browsing
false.experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 4/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

2. Stack ADT

View of stack

In Stack ADT Implementation instead of data being


stored in each node, the pointer to data is stored.
The program allocates memory for the data and
address is passed to the stack ADT.
The head node and the data nodes are
encapsulated in the ADT. The calling function can
only see the pointer to the stack.
The stack head structure also contains a pointer to
top and count of number of entries currently in
stack.
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 5/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

push() – Insert an element at one end of the stack


called top.
pop() – Remove and return the element at the top
of the stack, if it is not empty.
peek() – Return the element at the top of the stack
without removing it, if the stack is not empty.
size() – Return the number of elements in the
stack.
isEmpty() – Return true if the stack is empty,
otherwise return false.
isFull() – Return true if the stack is full, otherwise
return false.

3. Queue ADT

View of Queue

The queue abstract data type (ADT) follows the


basic design of the stack abstract data type.
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 6/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

Each node contains a void pointer to the data and


the link pointer to the next element in the queue.
The program’s responsibility is to allocate memory
for storing the data.
enqueue() – Insert an element at the end of the
queue.
dequeue() – Remove and return the first element of
the queue, if the queue is not empty.
peek() – Return the element of the queue without
removing it, if the queue is not empty.
size() – Return the number of elements in the
queue.
isEmpty() – Return true if the queue is empty,
otherwise return false.
isFull() – Return true if the queue is full, otherwise
return false.

Features of ADT:

Abstract data types (ADTs) are a way of


encapsulating data and operations on that data into
a single unit. Some of the key features of ADTs
include:

We use cookies to ensure you have theAbstraction:


best browsing experience
The user on our website.
does notByneed
using our site, youthe
to know acknowledge that you have read
and understood our
implementation ofCookie Policystructure
the data & Privacy Policy
only
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 7/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

essentials are provided.


Better Conceptualization: ADT gives us a better
conceptualization of the real world.
Robust: The program is robust and has the ability
to catch errors.
Encapsulation: ADTs hide the internal details of
the data and provide a public interface for users to
interact with the data. This allows for easier
maintenance and modification of the data
structure.
Data Abstraction: ADTs provide a level of
abstraction from the implementation details of the
data. Users only need to know the operations that
can be performed on the data, not how those
operations are implemented.
Data Structure Independence: ADTs can be
implemented using different data structures, such
as arrays or linked lists, without affecting the
functionality of the ADT.
Information Hiding: ADTs can protect the integrity
of the data by allowing access only to authorized
users and operations. This helps prevent errors
and misuse of the data.
We use cookies to ensure you have theModularity: ADTs can
best browsing experience bewebsite.
on our combined with
By using other
our site, you acknowledge that you have read
ADTs andtounderstood our Cookie
form larger, morePolicy & Privacy Policy
complex data structures.
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 8/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

This allows for greater flexibility and modularity in


programming.

Overall, ADTs provide a powerful tool for organizing


and manipulating data in a structured and efficient
manner.

Abstract data types (ADTs) have several advantages


and disadvantages that should be considered when
deciding to use them in software development. Here
are some of the main advantages and disadvantages
of using ADTs:

Advantages:

Encapsulation: ADTs provide a way to encapsulate


data and operations into a single unit, making it
easier to manage and modify the data structure.
Abstraction: ADTs allow users to work with data
structures without having to know the
implementation details, which can simplify
programming and reduce errors.
Data Structure Independence: ADTs can be
implemented using different data structures, which
We use cookies to ensure you have thecan
bestmake it experience
browsing easier toonadapt to changing
our website. By using ourneeds
site, you and
acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
requirements. Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 9/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

Information Hiding: ADTs can protect the integrity


of data by controlling access and preventing
unauthorized modifications.
Modularity: ADTs can be combined with other
ADTs to form more complex data structures, which
can increase flexibility and modularity in
programming.

Disadvantages:

Overhead: Implementing ADTs can add overhead


in terms of memory and processing, which can
affect performance.
Complexity: ADTs can be complex to implement,
especially for large and complex data structures.
Learning Curve: Using ADTs requires knowledge
of their implementation and usage, which can take
time and effort to learn.
Limited Flexibility: Some ADTs may be limited in
their functionality or may not be suitable for all
types of data structures.
Cost: Implementing ADTs may require additional
resources and investment, which can increase the
cost of development.
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 10/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

Overall, the advantages of ADTs often outweigh the


disadvantages, and they are widely used in software
development to manage and manipulate data in a
structured and efficient way. However, it is important
to consider the specific needs and requirements of a
project when deciding whether to use ADTs.

From these definitions, we can clearly see that the


definitions do not specify how these ADTs will be
represented and how the operations will be carried
out. There can be different ways to implement an
ADT, for example, the List ADT can be implemented
using arrays, or singly linked list or doubly linked list.
Similarly, stack ADT and Queue ADT can be
implemented using arrays or linked lists.

Feeling lost in the vast world of Backend


Development? It's time for a change! Join our Java
Backend Development - Live Course and embark on
an exciting journey to master backend development
efficiently and on schedule.
What We Offer:

Comprehensive Course
We use cookies to ensure you have theExpert
best browsing experience
Guidance foron our website.
Efficient By using our site, you acknowledge that you have read
Learning
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 11/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

Hands-on Experience with Real-world Projects


Proven Track Record with 100,000+ Successful
Geeks

GeeksforGeeks 320

Next Article
C++ Data Types

Similar Reads
Difference Between Abstract Class and Abstract…
Abstract is the modifier applicable only for methods and
classes but not for variables. Even though we don't…
3 min read

Difference between fundamental data types and…


In computer programming, data type is a classification
that specifies to compiler or interpreter which type of…
8 min read

Difference between Abstract Class and Concrete…


We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
Abstract andClass: An abstract
understood class& is
our Cookie Policy a type
Privacy Policyof class in
Skip to
Java that is declared by the abstract keyword. An… content
https://www.geeksforgeeks.org/abstract-data-types/ 12/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks
5 min read

Why can't static methods be abstract in Java?


In Java, a static method cannot be abstract. Doing so
will cause compilation errors.Example: Java Code // Jav…
3 min read

Are All Methods in a Java Interface are Abstract?


In Java, the interface is called a blueprint of a class and
it is used to achieve abstraction in java. By using…
8 min read

View More Articles

cpp-data-types Java-Data Types C++


Article Tags :
Java

Practice Tags : CPP Java

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 13/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

AD LEARN MORE

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 14/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

Company Explore Languages DSA Data Science Web


About Us Job-A-Thon Python Data Structures & ML Technologies
A-143, 9th Floor, Sovereign Corporate Legal Hiring Challenge Java Algorithms
Tower, Sector-136, Noida, Uttar Pradesh - Data Science HTML
Careers Hack-A-Thon C++ DSA for With Python CSS
201305
In Media GfG Weekly PHP Beginners Data Science For JavaScript
Contact Us Contest GoLang Basic DSA Beginner TypeScript
Advertise with us Offline Classes SQL Problems Machine ReactJS
GFG Corporate (Delhi/NCR) R Language DSA Roadmap Learning Tutorial NextJS
Solution DSA in JAVA/C++ Android Tutorial DSA Interview ML Maths NodeJs
Placement Master System Questions Data Bootstrap
Training Program Design Competitive Visualisation Tailwind CSS
Master CP Programming Tutorial
GeeksforGeeks Pandas Tutorial
Videos NumPy Tutorial
Geeks NLP Tutorial
Community Deep Learning
Tutorial

Python Computer DevOps System School Commerce


Tutorial Science Git Design Subjects Accountancy
Python GATE CS Notes AWS High Level Mathematics Business Studies
Programming Operating Docker Design Physics Economics
Examples Systems Kubernetes Low Level Design Chemistry Management
Django Tutorial Computer Azure UML Diagrams Biology HR Management
Python Projects Network GCP Interview Guide Social Science Finance
Python Tkinter Database DevOps Design Patterns English Grammar Income Tax
Web Scraping Management Roadmap OOAD
OpenCV Tutorial System System Design
Python Interview Software Bootcamp
We use cookies to ensure you have the best browsing experience
Question on our website. By using our site, you acknowledgeInterview
Engineering that you have read
and understood our Cookie Policy & Privacy Policy Questions
Skip to content
https://www.geeksforgeeks.org/abstract-data-types/ 15/16
6/26/24, 11:48 AM Abstract Data Types - GeeksforGeeks

Digital Logic
Design
Engineering
Maths

Databases Preparation Competitive More Free Online Write & Earn


SQL Corner Exams Tutorials Tools Write an Article
MYSQL Company-Wise JEE Advanced Software Typing Test Improve an
PostgreSQL Recruitment UGC NET Development Image Editor Article
PL/SQL Process UPSC Software Testing Code Formatters Pick Topics to
MongoDB Resume SSC CGL Product Code Converters Write
Templates SBI PO Management Currency Share your
Aptitude SBI Clerk Project Converter Experiences
Preparation IBPS PO Management Random Number Internships
Puzzles IBPS Clerk Linux Generator
Company-Wise Excel Random
Preparation All Cheat Sheets Password
Companies Generator
Colleges

@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved

We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read
and understood our Cookie Policy & Privacy Policy

https://www.geeksforgeeks.org/abstract-data-types/ 16/16

You might also like