**Definition of edge-weighted graph and MST.**

- What is a spanning tree?
- What is a minimum spanning tree?
- How many edges are in a (minimum) spanning tree of a graph with V vertices?
- Why do we make the simplifying assumptions that the graph is connected and the edge weights are distinct?

**Cuts.**

- What is a cut?
- How many cuts are there for a graph with V vertices?
- Cut property: given a cut, the crossing edge of minimum weight belongs to the MST.
*This is the most important point of this lecture*, and you should be very familiar with the proof.

**Manually performing Kruskal's and Prim's algorithms.**
These are easy and you should be able to do them even under the influence of powerful sedatives.

**Why Kruskal's and Prim's algorithms work.**

- Kruskal's algorithm is a special case of the generic greedy algorithm.
- Prim's algorithm is a special case of the generic greedy algorithm.

**Implementing Kruskal's and Prim's algorithms.**

- What sort of data do we track in Kruskal's algorithm, and what data structures do we use to track this data?
- What is the running time for typical implementations of these data structures?
- What sort of data do we track in Lazy Prim's algorithm, and what data structures do we use to track this data?
- What is the running time for typical implementations of these data structures?
- For Eager Prim's, why do we track vertices instead of edges? What does this do to our space requirements?
- What is the special data structure that we use to track vertices and their best known distance?
- How do we change the priority of a vertex using this special data structure (you should be able to give an example of a method call)?

- Spring 08 Final, #2a, #2b
- Fall 08 Final, #2a, #2b
- Fall 09 Final, #1b
- Fall 09 Final, #3a, #3c
- Fall 10 Final, #4a, #4b
- Fall 10 Final, #3a, #3b
- Spring 12 Final, #4a, #4b
- Would Kruskal's or Prim's algorithm work with edge-weighted digraphs?

- Fall 09 Final, #3b
- Fall 12 Final, #4a, #4b, #4c, #4d
- Textbook 4.3.8 - this is a particularly handy concept!
- Textbook 4.3.12
- Textbook 4.3.13
- Textbook 4.3.20
- True or False: Given any two components that are generated as Kruskal's algorithm is running (but before it has completed), the smallest edge connecting those two components is part of the MST.
- Textbook 4.3.19 - to be clear, for each vertex v, we maintain edgeTo[v] and distTo[v] and to find the nontree vertex with the smallest distTo[], we scan through the entire distTo[] array.

- Spring 08 Final, #3
- Fall 09 Final, #3d
- Textbook 4.3.26

- Figure out if Kruskal's, Prim's Lazy, or Prim's Eager algorithm are faster on "typical" graphs. Use the code from the booksite.