## Learning Outcomes

At the end of this lecture, you’ll be able to:

- Explain and trace the core operations of
**Set ADT**. - Implement the core operations of Set efficiently using array/linked structure.
- Analyze the time/space efficiency of alternative implementation approaches (e.g. array vs linked structure)
- Understand “move-to-front” and “transpose sequential search”
*heuristics*well enough to implement them. - Implement
**Fail-Fast**iterators for the Set ADT. - Explain the difference between the Set and the
**OrderedSet ADT**. - Implement the core operations of OrderedSet efficiently using array/linked structure.
- Describe set-theoretical operations
*union*,*intersection*, and*set difference*.

## Lecture Plan

In this lecture, we'll cover the following lessons:

- Set ADT: The Interface
- Linked Implementation of Set⚡
- LinkedSet⚡
- Hacking the O(n) Find⚡
- Array Implementation of Set⚡
- ArraySet⚡
- Hacking the O(n) Find⚡
- Set Iterator⚡
- Fail-Fast Iterators⚡
- Ordered Set: The Interface
- Linked Implementation of OrderedSet⚡
- Array Implementation of OrderedSet⚡
- Set-theoretical Operations

Lessons marked with ⚡ contain exercise/activity.