Overview

Mazes represents our transition into real world applications of data structures and algorithms. In this project, we will compare 3 implementations of graph algorithms for constructing and solving mazes. By the end of this project, students will be able to:

  • Understand and extend an existing codebase.
  • Implement nontrivial algorithms involving multiple ADTs and data structures.

Getting the Assignment

Task

Grab your partner(s) and set off on a new journey together!

If you are working in a group, consider scheduling a time to go over the spec together and discuss how to collaborate on the project. If you are working with a new partner, follow the instructions from the Deques assignment to add your partner into your group and pull the assignment from the public skeleton.

Task

Pull the skeleton repository in IntelliJ to get the heap assignment.

Pull the repo similar to how you did it for the deques assignment:

IntelliJ Git Pull Skeleton

If IntelliJ doesn’t react to the new folder for whatever reason, refresh Gradle manually through the Gradle tool window (on the right by default):

Gradle Refresh


Subpages

  1. Introduction - Familiarize yourself with the application.
  2. Disjoint Sets - Implement a data structure to optimize maze generation.
  3. Kruskal's Algorithm - Implement maze generation.
  4. Dijkstra's Algorithm - Implement maze solving.