CSCI 161 Bonus Lab: sections S26N01/2

See the main lab page for submission deadlines and late penalties.

It is assumed you are keeping up to date with the lectures and labs.
Some additional git information is available through the git quick notes, git project/lab submission, and lecture resources pages.

In this lab we start working with C++ classes, using them to build our own linked list class and then use that class in a small application.

Be sure to follow the course code standards. Marks will be deducted for failing to follow standards.

bonus lab product requirements/specification/design

As always, follow the usual procedure to fork/clone/submit the bonus lab, but this time the repo name is "bonus" (rather than labN).

The bonus lab is actually an expansion on your lab5's. Once you've finished your lab5, copy your lab5 bugtree.cpp file into the bonus repo and proceed from there. (The bonus lab bugtree requires adding some extra methods to your bugtree.cpp, but shouldn't require you to alter any of the ones you've already written.)

The key changes being introduced for the bonus lab are as follows:

The bugtree.h file provides the definition for the bugtree class, and the bonus.h and bonus.cpp provide a ready-made application for using the bugtree, but bonus.h/cpp do not yet support for the new remove, compare, assignment calls: that is something you need to add.

The testb.h/cpp files have been updated to show some sample testing of the new functionality.

For the bonus lab, the only file you cannot modify is the bugtree.h.

Be sure your bugtree still maintains a proper binary search tree implementation, with (pseudo)alphabetically-lesser names down the left subtrees and (pseudo)alphabetically-greater names down the right subtree.


Design

As this is a bonus lab, I'll be expecting you to work out your own design for the lab.