Learning Outcomes
At the end of this lecture, you’ll be able to:
- Define what a Linked List is.
- Enumerate the advantages & disadvantages of a linked list based vs. an array-based implementation.
- Trace the basic operations of a (singly) linked-list implementation.
- Understand the basic operations of a (singly) linked-list well enough to implement them.
- Implement an iterator for a (singly) linked-list.
- Appreciate that members of a static nested class (Node for Linked List) can be accessed by the outer class, but not the other way around.
- Implement
IndexedList
operations with a (singly) linked list implementation (LinkedIndexedList
).
Lecture Plan
In this lecture, we'll cover the following lessons:
- Array: A Static Data Structure
- Linked List: A Dynamic Data Structure
- Java Interlude: Static Nested Class
- Array vs. Linked List
- Build a Linked List⚡
- Linked List: Follow the References!⚡
- Linked List Operation: Prepend⚡
- Linked List Operation: Traverse⚡
- Linked List Operation: Get⚡
- Linked List Operation: Append⚡
- Linked List Operation: Insert⚡
- Linked List Operation: Delete⚡
- Linked List Iteration: The Iterator!⚡
- Exercise: LinkedIndexedList⚡
Lessons marked with ⚡ contain exercise/activity.