Brief Course Description

This course covers the design, analysis, and implementation of basic data structures in C++. Algorithms operating on the data structures are also covered. It is fundamentally a course about data structures, not about C++. However, as we will implement some of the data structures in C++, basic aspects of C++ and object oriented programming in C++ are also covered. We will start with a brief discussion of the C++ programming language. Then, we survey fundamental data structures (array, vector, lists, queue, stack, hash map, trees, and possibly graphs) and how we can make use of them in C++. Then, we delve deeper into the design, analysis and implementation of such data structures. Asymptotic analysis of algorithms and data structures is discussed. Other C++ features needed for generic implmentations of the data structures are introduced along the way.

Teaching staff

  • Instructor: Hung Q. Ngo ( hungngo [at] buffalo [dot] edu)
  • Teaching assistants
    • Mr. Jangyoung (Chris) Kim ( jangyoun [at] buffalo )
    • Mr. Suchismit Mahapatra ( suchismi [at] buffalo )
  • Office hours: see calendar above


Elliot B. Koffman & Paul A.T. Wolfgang. 2006. Objects, Abstraction, Data Structures and Design: Using C++, Wiley. (ISBN: 0471467553).


Passed both CSE 116 and CSE 191 with a grade of C- or better.