YSC2229: Introductory Data Structures and Algorithms
  • 1. Course Syllabus
  • 2. Software Prerequisites
  • 3. OCaml Style Guide
  • 1. Week 01: Introduction
  • 2. Week 02: Working with Arrays
  • 3. Week 03: Complexity of Algorithms and Order Notation
  • 4. Week 04: Divide-and-Conquer Algorithms
  • 5. Week 05: Binary Heaps and Priority Queues
  • 6. Week 06: Abstract Data Types
  • 7. Midterm Project: Memory Allocation and Reclamation
  • 8. Week 07: Hashing-Based Data Structures
  • 9. Week 08: Searching in Strings
  • 10. Week 09: Backtracking and Dynamic Programming
  • 11. Week 10: Data Encoding and Compression
  • 12. Week 11: Binary Search Trees
  • 13. Week 12: Graph Algorithms
    • 13.1. Representing Graphs
    • 13.2. Graphs as Linked Data Structures
    • 13.3. Reachability and Graph Traversals
    • 13.4. Single-Source Shortest Paths
    • 13.5. Minimal Spanning Trees
    • 13.6. Exercises
  • 14. Week 13: Elements of Computational Geometry
  • 15. Final Project: Vroomba Programming
YSC2229: Introductory Data Structures and Algorithms
  • Docs »
  • 13. Week 12: Graph Algorithms

13. Week 12: Graph Algorithms¶

  • 13.1. Representing Graphs
    • 13.1.1. Graphs as Adjacency Lists
    • 13.1.2. Reading and Printing Graphs
    • 13.1.3. Rendering Graphs via GraphViz
    • 13.1.4. Shortcomings of Adjacency-List graph representation
  • 13.2. Graphs as Linked Data Structures
    • 13.2.1. Switching between graph representations
    • 13.2.2. Testing graph operations
  • 13.3. Reachability and Graph Traversals
    • 13.3.1. Checking Reachability in a Graph
    • 13.3.2. Testing Reachability
    • 13.3.3. Rendering Paths in a Graph
    • 13.3.4. Depth-First Traversal
    • 13.3.5. DFS and Reachability
    • 13.3.6. DFS and Cycle Detection
    • 13.3.7. Topological Sort
    • 13.3.8. Testing Topological Sort
  • 13.4. Single-Source Shortest Paths
    • 13.4.1. Weighted Graphs
    • 13.4.2. Some Properties of Paths
    • 13.4.3. Representing Shortest Paths
    • 13.4.4. Representing Distance
    • 13.4.5. Initialisation and Relaxation
    • 13.4.6. Bellman-Ford Algorithm
    • 13.4.7. Rendering Minimal Paths
    • 13.4.8. Dijkstra’s Algorithm
    • 13.4.9. Testing Shortest-Path Algorithms
  • 13.5. Minimal Spanning Trees
    • 13.5.1. Representing Undirected Graphs
    • 13.5.2. Trees in Undirected Connected Graphs
    • 13.5.3. Minimal Spanning Trees
    • 13.5.4. Kruskal’s Algorithm
    • 13.5.5. Testing MST Construction
    • 13.5.6. Other MST Algorithms
  • 13.6. Exercises
    • 13.6.1. Exercise 1
    • 13.6.2. Exercise 2
Next Previous

© Copyright 2021, Ilya Sergey

Built with Sphinx using a theme provided by Read the Docs.