EX07 Stack Sets

0. Complete the Prerequisites

Before continuing on, make sure you’re caught up on the lectures through 6/22 and have completed at least EX05.

1. Set-up!

Pull the starter code. Under the src directory under exercises, you should see a new ex07 package with a bunch of files. Take some time to look at all the files. The Node Interface, NodeImpl Class, and LinkedList Class should all be familiar. You will be doing your work in the StackSetImpl Class implementing the methods from the StackSet Interface. You are free to test your work in StackSetPlayground.

2. Implementing the StackSet ADT

You are going to build in Java an implementaion for what we will call a StackSet (SST) using linked cells to do it. By StackSet, you will see (hopefully) as we define its behavior that it is sort of a Stack, but with a uniqueness criterion on its elements, just as a Set contains unique elements. So the StackSet code will implement a Set (where order is not important, just membership and size) and it will also behave much as a Stack (LIFO order, sort of). We say “much as” a Stack because there is a small difference… or two.

It is your task to implement the methods specified by the StackSet Interface. Their expected behavior is described in detail below.

push:

pop:

peek: (just a different name for top)

contains:

size:

limit:

isEmpty:

isFull:

Hints and Notes

3. Make a Backup Checkpoint “Commit”

“Push” your work up to GitHub for backup. By creating “commits”, which you can think of as versioned checkpoints in your workspace, you are not at risk of losing your work. It’s easy to revert back to an old version or to restore your entire workspace on a different computer.

  1. Select the Git menu along the top of your screen and then choose “Commit”.
  2. Notice the files listed under Changes. These are files you’ve made modifications to since your last backup.
  3. Ensure all the files that you’d like to backup are selected. Your cursor should be inside of a message box where you will write a nice description of the modifications you’ve made to your code, like “Finished EX07!”, and then hit the “Commit” button.
  4. If you open the Git at the bottom of your screen, you should see this commit added to your chain of git commits. However, it has just been added to your local main branch, and needs to be pushed to your remote backup.
  5. Select the Git menu along the top of your screen again and then choose “Push”.
  6. A pop-up should appear that displays: “main -> backup : main”, which means your latest local commit on the local main branch is going to be pushed to the main branch on the remote backup. If you see “main -> origin : main”, just click where it says origin and select backup. Hit the “Push” button.
  7. If you want to see your backed up work on Github, navigate to the following URL but replace USERNAME with your GitHub username:

4. Submit to Gradescope for Grading

All that’s left now is to hand-in your work on Gradescope for grading.

Before doing so, you need to know that before an assignment’s deadline you can resubmit work as many times as you need to without penalty. Portions of assignments are autograded and will provide near-immediate feedback. We want you to resubmit as many times as it takes you in order to earn full autograding credit!

Login to Gradescope and select the assignment named “EX07 - StackSet” You’ll see an area to upload a zip file. To produce a zip file for autograding, return back to IntelliJ.

Mac Users

Along the bottom of your window, you should see an option to open a terminal integrated into IntelliJ.

Type the following command (all on a single line):

./submit.sh ex07

In the file explorer pane, look to find the zip file named “ex07_submission.zip”. The script will call it an ex05 submission since that is the package we zipped. If you right click on this file “Open in -> Finder” on Mac, the zip file’s location on your computer will open. Upload this file to Gradescope to submit your work for this exercise.

Windows Users

We are working on rewriting the script to work for Windows! Until then, please navigate to your course workspace in a File Explorer window. Then right click on the src folder in your exercises directory and compress the directory into a zip folder. You can name it “ex07_submission.zip”

When you upload it to Gradescope, please delete any files that showed up in the src/ folder that were not actually part of ex07.