Learning Goals

  • Integrate multiple ADTs and data structures to solve a problem with complex requirements.

    Due to the specific runtime requirements of this heap implementation, our solution will need to creatively combine different ADTs and data structures to design a better solution.

  • Plan the implementation of a data structure and its invariants.

    At a high level, it’s necessary to determine the invariants that a data structure should maintain before and after every method call, and at a low level, it’s useful to determine how these invariants affect the shared functionality that can be extracted into helper methods. In the process, it may also be necessary to consider which of the invariants these helper methods themselves require in order to function correctly.


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. Like previous projects, one person should also add the other person to their repo as a collaborator, so that everyone has access to the source code.

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. Programming - Complete the programming portion of the assignment.