I have tried to separate this PR into distinct commits so that individual ones can be cherry-picked in or removed as desired.
Previously, the lab writeup for the List constructor said that "pointers are often initialized to NULL". While this is technically correct, it is not true for the List constructor!! Lots of students were tripped up by this.
Lots of students will attempt to implement the functions in the order they appear in the header file, which is not the best way of going about it. However, we might as well try to lessen their pain by moving find above remove, so that they can implement the simpler one first, then use find for remove.
The "implement in the order that the functions are listed" issue is exacerbated by the fact that the List functions use an ordered list. Use an unordered list instead.
Add a missing link.
More strongly recommend LLDB over GDB, and remove some historical context that seems outdated by a few years at this point.
Prettify some things.
Mention the functions that you must have implemented in order to use the ListTest harness so students have a clear starting point, as well as (my) suggested order of implementation (which may be completely subjective).
There were two common linker errors on Piazza - missing function implementations, or duplicate implementations. Hopefully a short description of what each message refers to will help lessen the Piazza posts.
I have tried to separate this PR into distinct commits so that individual ones can be cherry-picked in or removed as desired.
find
aboveremove
, so that they can implement the simpler one first, then usefind
forremove
.