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 it mean that a problem has optimal substructure?

  1. AAn optimal solution can be built from optimal solutions of its subproblems
  2. BEvery subproblem has the same size
  3. CThe problem has exactly one optimal solution, which every subproblem shares
  4. DThe problem can be solved in constant time
2.Algorithms & complexityHard

Which definition of the class P is correct?

  1. AProblems that need exponential time on every computer
  2. BProblems whose solutions can be checked but never found in polynomial time
  3. CProblems that can be solved in parallel
  4. DDecision problems solvable by a deterministic algorithm in polynomial time
3.Data structuresMedium

What is the worst-case height of a binary search tree with n nodes if keys are inserted in sorted order?

  1. Alog₂ n
  2. B√n
  3. C1
  4. Dn (it becomes a linked list)
4.Data structuresHard

Why are B-trees used in databases and file systems?

  1. AThey store data unsorted
  2. BThey need no rebalancing
  3. CThey use less memory than any array, so the entire index always fits in main memory
  4. DTheir high branching factor keeps the tree shallow, reducing slow disk reads
5.Graph theoryMedium
ABCDEEuler circuitEuler path, no circuitneither

Does the connected graph have an Euler circuit, an Euler path that is not a circuit, or neither? Click your answer.

|V| = 5|E| = 6
  1. 1Euler circuit
  2. 2Euler path, no circuit
  3. 3neither
6.Graph theoryHard
9116101419420ABCDEF

Prim’s algorithm builds a minimum spanning tree starting from vertex E. Click the edge it adds as edge number 4.

start: Ek = 4
  1. 1edge AB
  2. 2edge BC
  3. 3edge BD
  4. 4edge CE
  5. 5edge DE
  6. 6edge DF
  7. 7edge EF
  8. 8edge BE

3Solutions

1.Algorithms & complexity

Answer: A · An optimal solution can be built from optimal solutions of its subproblems

Why this is the answer

Optimal substructure is required for both greedy algorithms and dynamic programming to produce correct answers.

Answer

A · An optimal solution can be built from optimal solutions of its subproblems
2.Algorithms & complexity

Answer: D · Decision problems solvable by a deterministic algorithm in polynomial time

Why this is the answer

P contains decision problems with a deterministic polynomial-time algorithm, such as checking whether a graph is connected.

Answer

D · Decision problems solvable by a deterministic algorithm in polynomial time
3.Data structures

Answer: D · n (it becomes a linked list)

Why this is the answer

Sorted insertions create a degenerate tree with height n, making searches O(n). Balanced trees prevent this.

Answer

D · n (it becomes a linked list)
4.Data structures

Answer: D · Their high branching factor keeps the tree shallow, reducing slow disk reads

Why this is the answer

B-trees store many keys per node, so height is small and few block reads are needed per lookup; B+ trees also link leaves for range scans.

Answer

D · Their high branching factor keeps the tree shallow, reducing slow disk reads
5.Graph theory

Answer: Euler circuit

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.

Degrees

deg(A) = 2, deg(B) = 4, deg(C) = 2, deg(D) = 2, deg(E) = 2

Odd vertices

0
Euler circuit

Answer

Euler circuit
6.Graph theory

Answer: edge BD

Shortest paths and spanning trees: Dijkstra’s algorithm settles one vertex per round: the unsettled vertex with the smallest tentative distance. Its distance is then final, and every neighbour v gets d(v) = min(d(v), d(u) + w(u, v)). Kruskal’s algorithm builds a minimum spanning tree by taking the edges from light to heavy and skipping any edge that would close a cycle; Prim’s algorithm grows one tree from a start vertex by always adding the lightest edge that leaves it. A spanning tree of n vertices has n − 1 edges.

Prim’s algorithm

1. EF (4)
2. CE (10)
3. BC (11)
4. BD (6)
5. AB (9)

edge number 4

BD

Answer

edge BD

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