--- tags: Setup --- # Lecture 5 Setup/Prep In lecture 5 we turn to lists. We will start by asking: - what combination of classes, interfaces, and abstract classes should we use to implement lists from scratch? This lecture will focus on functional-style lists, in which operations to add/delete elements produce new lists, rather than modify existing lists. (We'll implement updating lists in a couple of days.) **If you have implemented LinkedLists through objects before, you may be surprised by aspects of how we will do this.** (*Hint: In particular, we will only use concepts that we have covered in lecture up until now*) ## Prep There are no starter files for this lecture (though we will write code, in case you want to create a `lec05` package). It's worth coming to class having thought about how you might do this before we show the solution. - Propose a collection of classes, interfaces, and abstract classes for linked lists