7 ADTs and Implementations

1. List ADT

Constraint: ordered sequence, position-based, duplicates allowed.

Behaviors: add, remove, search, access by index, size.

Implementations

  • Array

    • access: Θ(1)

    • search: Θ(n)

    • insert/remove at middle/front: Θ(n)

    • insert/remove at end: Θ(1) amortized

  • Linked list

    • access by index: Θ(n)

    • search: Θ(n)

    • insert/remove at front or known node: Θ(1)

    • insert/remove by position search: Θ(n)


2. Stack ADT

Constraint: LIFO.

Behaviors: push, pop, top, empty.

Implementations

  • Array: push/pop/top = Θ(1) amortized / Θ(1) / Θ(1)

  • Linked list: push/pop/top = Θ(1) / Θ(1) / Θ(1)

  • Wrapper class: same as wrapped structure


3. Queue ADT

Constraint: FIFO.

Behaviors: enqueue, dequeue, peek, empty.

Implementations

  • Linked list (front + rear):

    • enqueue: Θ(1)

    • dequeue: Θ(1)

    • peek: Θ(1)

  • Circular array:

    • enqueue: Θ(1)

    • dequeue: Θ(1)

    • peek: Θ(1)


4. Deque ADT

Constraint: insert/remove at both ends.

Behaviors: push front, push rear, pop front, pop rear, peek front/rear, size.

Implementations

  • Doubly linked list: all end operations Θ(1)

  • Circular array: all end operations Θ(1)


5. Map ADT

Constraint: unique keys, each key maps to a value.

Behaviors: put, get, remove, contains.

Implementations

  • Hash table:

    • put/get/remove/contains: Θ(1) average, Θ(n) worst

  • BST:

    • put/get/remove/contains: Θ(log n) average, Θ(n) worst


6. Set ADT

Constraint: unique elements only, no duplicates.

Behaviors: add, remove, contains.

Implementations

  • Hash table:

    • add/remove/contains: Θ(1) average, Θ(n) worst

  • BST:

    • add/remove/contains: Θ(log n) average, Θ(n) worst


7. Priority Queue ADT

Constraint: removal is by priority, not FIFO.

Behaviors: insert, remove highest/lowest priority, peek, empty.

Implementations

  • Heap:

    • insert: Θ(log n)

    • remove priority item: Θ(log n)

    • peek: Θ(1)

  • Sorted array:

    • insert: Θ(n)

    • remove priority item: Θ(1) if priority end is chosen well

    • peek: Θ(1)

  • Unsorted array:

    • insert: Θ(1)

    • remove priority item: Θ(n)

    • peek: Θ(n)


Quick view

ADT

Constraint

Common implementations

List

ordered, positional

array, linked list

Stack

LIFO

array, linked list

Queue

FIFO

linked list, circular array

Deque

both ends active

doubly linked list, circular array

Map

unique key → value

hash table, BST

Set

unique elements

hash table, BST

Priority Queue

priority order

heap, sorted array, unsorted array