10.4 Introduction to Abstract Data Types (ADT)

2026 Syllabus Objectives

By the end of this subtopic, you should be able to:

  • understand that an abstract data type (ADT) is a collection of data together with the operations that can be carried out on that data
  • understand that stack, queue and linked list are examples of ADTs
  • describe the key features of a stack, queue and linked list
  • justify when a stack, queue or linked list should be used
  • use a stack, queue and linked list to store data
  • understand how data can be added, edited and deleted in these structures
  • describe how a queue, stack and linked list can be implemented using arrays

What is an abstract data type (ADT)?

An abstract data type, or ADT, is a way of thinking about data by focusing on two things:

  • the data itself
  • the operations that can be done to that data

This means an ADT is not just a list of values. It also includes the allowed actions, such as adding an item, removing an item, or looking at an item.

For example, a stack is an ADT. It stores data, but it also has special operations such as push and pop. A queue is another ADT, with operations such as enqueue and dequeue. A linked list is also an ADT because it stores data in linked nodes and allows items to be added or removed by changing pointers.

The word abstract means we are mostly interested in what the structure does, not all the low-level details of how it is built. In this topic, though, you also need to understand a simple way these ADTs can be implemented using arrays.

Stack, queue and linked list as ADTs

The syllabus names three important ADTs:

  • stack
  • queue
  • linked list

Each one stores data in a different way. Because they work differently, they are useful in different situations. A student needs to know both the structure and the reason for using it.


A stack is a linear structure where the last item added is the first item removed. This is called LIFO, which stands for Last In, First Out.

A good everyday example is a pile of trays or plates. You add a new plate to the top. When you remove a plate, you also take it from the top. You do not usually take one from the middle or bottom.

Main features of a stack

A stack has these important features:

  • data is added and removed from one end only
  • that end is called the top
  • the most recently added item is the first one to come out
  • a top pointer is often used to show the current top item
  • if the stack is empty, the pointer shows there are no valid items
  • if the stack is full and another item is added, this causes overflow
  • if the stack is empty and an item is removed, this causes underflow

Operations on a stack

The common operations are:

  • push: add an item to the top of the stack
  • pop: remove an item from the top of the stack
  • peek: look at the top item without removing it
  • isEmpty: check if there are no items
  • isFull: check if no more space is available
  • size: find how many items are in the stack

How data is stored in a stack

Imagine the stack currently contains:

Top -> C B A

Here, C was added last, so C will be removed first.

If you push D, the stack becomes:

Top -> D C B A

If you then pop, D is removed, and C becomes the top again.

Editing data in a stack

The syllabus says you should be able to add, edit and delete data. In a stack:

  • add means push a new item onto the top
  • delete means pop the top item
  • edit usually means changing a value that is already stored

In practice, a stack mainly allows direct work at the top. So if you want to change an item lower down, it is less convenient than using some other structure. That is one reason a stack is best when you mainly need to work with the most recent item.

When is a stack useful?

A stack is useful when data must be handled in reverse order of arrival.

Examples of suitable situations include:

  • reversing data
  • undo operations
  • tracking the most recent action first

A stack should be chosen when the newest item needs to be removed before older items.

Sign in to view full notes