ABSTRACT
Analysis of data structures and algorithms often devolves into counting their ele-
ments and operations. In this chapter, we look at methods of effective counting, using
generating functions, special combinatorial numbers, and recurrences. The chapter
touches on the role of counting in discrete probability theory, but a later chapter is
devoted to that theory.