Before we get started with the actual data structures, we need to get some terminologies and notations in place. We need to agree on what an abstract data structure is—in contrast to a concrete one—and we need to agree on how to reason with runtime complexity in an abstract way.
If you are at all familiar with algorithms and data structures, you can skim quickly through this chapter. There won’t be any theory you are not already familiar with. Do at least skim through it, though, just to make sure we agree on the notation I will use in the remainder of the book.
If you are ...