Vol. 2: Graph Algorithms and NP-Completeness.- IV. Algorithms on Graphs.- 1. Graphs and their Representation in a Computer.- 2. Topological Sorting and the Representation Problem.- 3. Transitive Closure of Acyclic Digraphs.- 4. Systematic Exploration of a Graph.- 5. A Close Look at Depth First Search.- 6. Strongly-Connected and Biconnected Components of Directed and Undirected Graphs.- 7. Least Cost Paths in Networks.- 7.1. Acyclic Networks.- 7.2. Non-negative Networks.- 7.3. General Networks.- 7.4. The All Pairs Problem.- 8. Minimum Spanning Trees.- 9. Maximum Network Flow and Applications.- 9.1 Algorithms for Maximum Network Flow.- 9.2 (0,1)-Networks, Bipartite Matching and Graph Connectivity.- 9.3 Weighted Network Flow and Weighted Bipartite Matching.- 10. Planar Graphs.- 11. Exercises.- 12. Bibliographic Notes.- V. Path Problems in Graphs and Matrix Multiplication.- 1. General Path Problems.- 2. Two Special Cases: Least Cost Paths and Transitive Closure.- 3. General Path Problems and Matrix Multiplication.- 4. Matrix Multiplication in a Ring.- 5. Boolean Matrix Multiplication and Transitive Closure.- 6. (Min,+)-Product of Matrices and Least Cost Paths.- 7. A Lower Bound on the Monotone Complexity of Matrix Multiplication.- 8. Exercises.- 9. Bibliographic Notes.- VI. NP-Completeness.- 1. Turing Machines and Random Access Machines.- 2. Problems, Languages and Optimization Problems.- 3. Reductions and NP-complete Problems.- 4. The Satisfiability Problem is NP-complete.- 5. More NP-complete Problems.- 6. Solving NP-complete Problems.- 6.1 Dynamic Programming.- 6.2 Branch and Bound.- 7. Approximation Algorithms.- 7.1 Approximation Algorithms for the Travelling Salesman Problem.- 7.2 Approximation Schemes.- 7.3 Full Approximation Schemes.- 8. The Landscape of Complexity Classes.- 9. Exercises.- 10. Bibliographic Notes.- IX. Algorithmic Paradigms.