- Sort the edges by weight, lowest to highest.
- Repeat until all cities have been added
- Select the lowest cost edge which does not
- produce a vertex with degree larger than 2
- produce a cycle of length less than n
- Add this edge to the solution.
- form a minimal spanning tree
- Perform a DFS on the tree, recording the vertexes passed.
- Scan this list, remove all repeated occurrences.
- Connect the last vertex to the first vertex.