Data Structures and Algorithms: cram pack

Formula sheets, the key method steps for every topic and 6 practice problems, with full solutions at the back.

New problemsBack to the course

In the print window, choose “Save as PDF” to keep a copy on your device.

1Formulas and methods

Graph theory

Handshake lemma
Σ deg(v) = 2|E|
Complete graphs
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Regular graph
|E| = n·k/2
Tree and forest
|E| = n − 1, |E| = n − c
Leaves of a tree
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
circuit: all degrees even; path: exactly 2 odd degrees
Hamilton circuits in Kn
(n − 1)!/2
Dijkstra update
d(v) = min(d(v), d(u) + w(u, v))
Walks of length L
(Mᴸ)ij

Method

  1. Write down the degree of every vertex; the degrees add up to twice the number of edges.
  2. For Euler questions, check that the graph is connected and count the vertices with odd degree.
  3. For trees, use n − 1 edges and the handshake lemma.
  4. For Dijkstra, keep a table of tentative distances and settle the smallest unsettled vertex each round.
  5. For a minimum spanning tree, sort the edges by weight and skip every edge that closes a cycle (Kruskal), or grow one tree from a start vertex (Prim).

2Practice problems

1.Algorithms & complexityMedium

What does amortised analysis measure?

  1. AThe expected cost over random inputs
  2. BThe cost of an algorithm on the best input
  3. CThe average cost per operation over a worst-case sequence of operations
  4. DThe cost of the single most expensive operation anywhere in the sequence
2.Algorithms & complexityHard

Why does any comparison-based search in a sorted array need Ω(log n) comparisons in the worst case?

  1. ABinary search is the only possible algorithm, and it needs log₂ n comparisons
  2. BA decision tree with n possible outcomes must have depth at least log₂ n
  3. CComparisons take logarithmic time each
  4. DEvery element must be compared at least once
3.Data structuresMedium

How is a new element inserted into a binary heap?

  1. APlace it at the root and sift it down
  2. BRebuild the whole heap from scratch
  3. CPlace it at the end of the array and sift it up while it violates the heap property
  4. DInsert it at its sorted position by shifting all of the larger elements one place right
4.Data structuresHard

A Fenwick tree (binary indexed tree) over an array of n numbers supports which operations in O(log n)?

  1. AInserting elements at any position
  2. BPrefix-sum queries and single-element updates
  3. CFinding the median in O(1)
  4. DSorting the array and binary search
5.Graph theoryMedium

A connected graph has 20 vertices and 30 edges. How many edges k must be removed to leave a spanning tree?

|V| = 20|E| = 30
k =
6.Graph theoryHard
ABCDEF

How many closed walks of length 2 start and end at E? A walk may repeat vertices and edges. Call the number N.

M = adjacency matrixL = 2
N =

3Solutions

1.Algorithms & complexity

Answer: C · The average cost per operation over a worst-case sequence of operations

Why this is the answer

Amortised analysis spreads the cost of rare expensive operations over many cheap ones, giving a guaranteed average for any sequence.

Answer

C · The average cost per operation over a worst-case sequence of operations
2.Algorithms & complexity

Answer: B · A decision tree with n possible outcomes must have depth at least log₂ n

Why this is the answer

Each comparison at most halves the set of remaining possibilities, so distinguishing n positions needs at least log₂ n comparisons.

Answer

B · A decision tree with n possible outcomes must have depth at least log₂ n
3.Data structures

Answer: C · Place it at the end of the array and sift it up while it violates the heap property

Why this is the answer

Adding at the end keeps the tree complete; swapping with the parent restores the order in O(log n) steps.

Answer

C · Place it at the end of the array and sift it up while it violates the heap property
4.Data structures

Answer: B · Prefix-sum queries and single-element updates

Why this is the answer

A Fenwick tree stores partial sums over ranges determined by the low bits of each index, so both prefix sums and point updates take O(log n).

Answer

B · Prefix-sum queries and single-element updates
5.Graph theory

Answer: k = 11

Euler, Hamilton and trees: a connected graph has an Euler circuit (every edge once, back to the start) when every vertex has even degree, and an Euler path that is not a circuit when exactly two vertices have odd degree; the path then runs from one odd vertex to the other. A Hamilton circuit visits every vertex once; Kn has (n − 1)!/2 of them. A tree on n vertices has n − 1 edges, and a connected graph with m edges keeps a spanning tree after removing m − n + 1 edges.

Edges of a spanning tree

20 − 1 = 19

Edges to remove

k = 30 − 19 = 11

Answer

k = 11
6.Graph theory

Answer: N = 3

Degrees: the degree of a vertex is the number of edges that meet it. Every edge has two ends, so the degrees add up to twice the number of edges: Σ deg(v) = 2|E| (the handshake lemma). The number of vertices with odd degree is therefore even. Kn has n(n − 1)/2 edges, a k-regular graph on n vertices has nk/2, and a tree on n vertices has n − 1 edges.

Adjacency matrix

A: 0 1 1 0 0 0
B: 1 0 1 1 1 0
C: 1 1 0 0 1 0
D: 0 1 0 0 0 1
E: 0 1 1 0 0 1
F: 0 0 0 1 1 0

Common neighbours

(M²)EE = 0·0 + 1·1 + 1·1 + 0·0 + 0·0 + 1·1 = 3

Answer

N = 3

ExamProblems · examproblems.com/courses/data-structures-and-algorithms