The following lessons introduce the topic of data structures by comparing how data is actually stored in a computer with the abstract structures that programmers use. To illustrate this comparison, several basic data structures such as lists, stacks, and queues are described. Each lesson includes a set of review questions which test the important concepts from the lesson and provide practice problems. After reading each lesson, you should work the review questions before proceeding to the next lesson. Use the navigation bar at the top of this page to view the lessons and access the review questions. Each lesson page has a link on the navigation bar which will take you to the review questions for that lesson. To begin your study, click at the top of this page.


  1. Introduction to Data Structures
  2. Computer Memory
  3. Pointers and Indirection
  4. Linear Data Structures
    1. Ordered List: The Abstract View
    2. Ordered List: The Implementation View
    3. Stacks: The Abstract View
    4. Stacks: The Implementation View
    5. Queues: The Abstract View
    6. Queues: The Implementation View
  5. Nonlinear Data Structures
    1. Multidimensional arrays
    2. Trees
    3. Graphs
  6. Abstract Data Types
  7. Summary

Learning objectives:

  • Show how data structures map onto physical memory.
  • Identify linear versus nonlinear data structures.
  • Manipulate data structures with basic operations.
  • Compare different implementations of the same data structure.