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

Follow the instructions from the Deques assignment to add your teammates into your group and pull the assignment from the public skeleton.

Like previous projects, 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


Extra Credit Midpoint Check-In

This project is fairly lengthy. In order to encourage your team to start early and remain ontrack, we’re offering a low-stakes way of earning extra-credit (equivalent to 1 or 2 PollEv quizzes which will not make or break your grade for the class nor this project).

To earn the extra credit, submit your project to Gradescope and earn at least 15/30 points by Sunday, May 22 at 11:59 PM.


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.