Augment Education
  • Blog
Log inStart free
augment

Augment Education

IB Diploma revision built around the syllabus.

contact@augment-education.com

Product

  • Features
  • Question bank
  • Quick fire
  • Worksheets
  • Flashcards
  • Notes
  • Subjects
  • What's new

Learn

  • IB guide
  • Booklets, explained
  • Blog
  • Free tools
  • Grade calculator
  • Subject checker

Company

  • About
  • Help
  • For parents
  • For teachers
  • Student stories
  • Comparisons

Augment Education is developed independently of the International Baccalaureate Organization and is not endorsed by it. “IB” and “International Baccalaureate” are its trademarks.

© 2026 Augment Education. All rights reserved.

PrivacyTerms
  1. Subjects
  2. Computer Science
  3. B4 Abstract data types

B4 Abstract data types

How abstract data types separate what a structure does from how it is built, how linked lists, binary search trees, sets and hash tables fit together, and how the HL topic links to the rest of the course.

  • IB Computer Science
  • HL only

What B4 covers

From the subject guide: what you need to know and be able to do.

Linked lists, binary search trees, sets and hash tables, and when to use each.

1 subtopics in Abstract data types

Each one has its own page once something is published for it.

  1. B4.1Fundamentals of ADTs201 questions · notes · 75 quick fire

An overview of B4 Abstract data types

4 min readLast reviewed 14 Oct 2026

HL only

This whole topic is HL only. It adds abstract data types and the dynamic structures that implement them: linked lists, binary search trees, sets and hash tables.

Introduction

An abstract data type (ADT) describes a collection of data by the operations allowed on it and what each operation does, without saying how the data is stored. A program that uses a set only needs to add items, remove them and test membership; whether the set is built on an array, a tree or a hash table is hidden inside the implementation.

The choice of implementation decides how fast those operations run. Searching an unsorted array checks every element, a balanced binary search tree halves the remaining data at each step, and a hash table usually finds an item in a single step. Choosing the right ADT and implementation for a situation is one of the main design decisions in any program that handles a lot of data.

How the ideas connect

The topic has one subtopic, B4.1, Fundamentals of ADTs, which starts with the idea of an ADT and then studies four structures. The stack and queue of subtopic B2.2, Data structures, are already ADTs; B4.1 adds structures that grow and shrink by linking nodes together instead of shifting elements in a block of memory.

Top box: Abstract data type, what the operations do, not how. Arrows to four boxes: linked lists (singly, doubly, circular), binary search trees (search, traverse), sets (union, subset, membership), hash tables (HashMap, dict). Dashed below: B2.2, B2.4, A1.2, A2.4.
One idea, four structures: each structure provides a set of operations behind a fixed interface, and each connects to an earlier topic. The whole diagram is HL only.

A linked list stores each item in a node that holds a reference to the next node, in singly, doubly and circular forms, and is evaluated against an array. A binary search tree (BST) keeps smaller values to the left and larger to the right, so a search halves the data at each step while the tree stays balanced. A set holds each value at most once and supports union, intersection, difference and subset tests. A hash table uses a hash function to turn a key into a position, which is how Java's HashMap and HashSet and Python's dict and set work.

The subtopic and its statements

Because B4 has a single subtopic, the table lists its six statements, all HL only.

Statement

Level

What it covers

B4.1.1

HL only

The properties and purpose of ADTs: operations defined separately from their implementation

B4.1.2

HL only

Evaluating linked lists: sketching insertion, deletion, traversal and search, and weighing memory use and speed against arrays

B4.1.3

HL only

Constructing singly, doubly and circular linked lists: insert, delete, traverse and search

B4.1.4

HL only

The structure of BSTs: inserting, deleting and searching, in-order, pre-order and post-order traversal, balanced and degenerate trees

B4.1.5

HL only

Constructing and applying sets: membership, adding and removing, union, intersection, difference, subset and superset

B4.1.6

HL only

Hash tables, hash functions and collisions, and the maps and sets built on them in Java and Python

Linked lists and sets are written in code in both languages. Binary search trees are explained and sketched; their traversals use the branching recursion of subtopic B2.4.

Links to other topics

The topic draws on most of theme B. Nodes are objects joined by references, so it uses the classes of topic B3; operations are compared with the Big O notation of subtopic B2.4; and BST traversals use recursion (HL). Set operations mirror the Boolean logic of subtopic A1.2: an item is in the union of two sets if it is in the first OR the second.

Computational thinking: An ADT is abstraction applied to data. The interface states what each operation does and hides how it is done, so a program written for a set works unchanged if its implementation moves from a sorted list to a hash table. The meaning differs from abstraction in OOP (subtopic B3.2), where an abstract class is a class that cannot be instantiated.

The structures also appear outside programming. Database indexes in subtopic A3.3 are commonly built as B-trees, a relative of the BST, and the round robin scheduling of subtopic A1.3 cycles through processes in the way a circular linked list cycles through its nodes. The hash function of a hash table aims at speed and an even spread of keys, unlike the cryptographic hash functions of subtopic A2.4, which aim to be impossible to reverse.

Linking question: Can a BST play a role in the quicksort algorithm (B2.4)? If quicksort always takes the first element of each part as its pivot and keeps the other values in their original order as it partitions, the pivots form the same tree as inserting the values into a BST in that order, and the two make the same comparisons. Both are O(nlog⁡n)O(n \log n)O(nlogn) on average and O(n2)O(n^{2})O(n2) when the input is already sorted, the case that produces a degenerate tree.

Exam tip

Abstract data types are examined in Paper 2 at HL only. You may need to construct linked list and set operations in code, explain how a BST is built, searched and traversed and sketch the tree after insertions or deletions, and evaluate linked lists against arrays with reasons tied to Big O.

Flashcards for B4

The official deck for this part of the syllabus.

  • B4.1 Fundamentals of ADTs430 cards

On this page

  • Syllabus points
  • Subtopics
  • Notes
  • Flashcards

Published for B4

Exam-style questions
201
Notes pages
2
Quick-fire questions
90
Key terms
46
Counted on 20 October 2026Open it in Augment

More of IB Computer Science

  • IB Computer ScienceThe Computer Science syllabus, assessment and what Augment has for it.

Carry on with B4 in Augment

With a free account, Augment remembers where you stopped and what you have practiced.

Start freeOpen B4 in Augment