Homework 7
This week you will practice the following:
- Converting a class to a class template.
- Adapting an implementation to a change in encoding.
- Implementing a self-balancing binary search tree.
- Testing the correctness of your data structure.
Let's Go!
Both team members should click here to accept the assignment:
- Accept Starter Code on GitHub Classroom
- Create a new team with your new partner.
- Name your team in a way that lets us identify you!
Steps
For these first two parts, the code is pretty much following the Homework 6 specification for tree functionality.
At this point, we'll begin enhancing our TreeSet
class template, so you will want to read through the
As in other assignments, we encourage you to keep the specification document open in a separate window or tab for reference.
- Phase 3: Specifying the Insertion Scheme
- Phase 4: Insert and Move to Root
- Phase 5: Move
size_
toNode
- Phase 6: Randomized Insert
- Written Questions: Using Your Search Tree
- Check Your Submission
Resources
Please refer (frequently!) to these specifications for the data structure you will be implementing:
You may also want to review Section 16.1 of the
and, from our help section,
As always, we encourage you to ask (and answer) questions on Piazza as you work!
Grading
Completing this assignment is worth 100 points and your submission will be graded as follows:
- 3 points: Planning (Completeness, not Correctness)
- 14 points: Repository Status (Code compiles, Correct files submitted, no
cpplint
errors) - 2 points: All team members listed on Gradescope submission
- 20 points: Coding Style
- 26 points: Writing Tests
- 35 points: Implementation Correctness
(When logged in, completion status appears here.)