Lab 8

Priority Queues

Goals

  • Implement a heap data structure to better understand the Priority Queue ADT
  • Learn about Java’s Comparator interface for implementing different sorting orders for the same data type
  • Continue practicing using unit tests to help us debug our code
  • Explore the application of Priority Queues for a real-world problem

Welcome to our eighth CSCI 151 lab! The lab can be started by following this link to create a copy of the assignment for you on GitHub: https://classroom.github.com/a/oB2y9oSL

In this week’s lab, we will be exploring Priority Queues by (1) creating our own implementation of a Priority Queue using a heap to understand how heaps automatically sort data, and (2) applying Priority Queues in a real-world application maintaining a priority ordering of applications running on a computer (simulating something like how our operating systems work). We will also continue practicing using unit tests for testing our code piecewise as we develop it (rather than waiting until we’ve written a lot of intertwined code that is difficult to debug).

We will once again begin with a Warmup designed to help reinforce some of the key concepts needed to complete the lab assignment. You are strongly encouraged to work with a partner on the Warmup during the lab period.

As a friendly reminder, there is also lab helping available outside of your regularly scheduled lab time. A calendar and description can be found here. Please make use of the lab helping available as much or as little as you need; it is there to assist you as we learn together this semester. Please also feel free to reach out to your professor by email or stop by office hours with any questions.