This document provides an introduction to data structures. It defines data structures as representations of logical relationships between data elements. Data structures can be primitive, like integers and floats, or non-primitive, like lists, stacks, queues, trees and graphs. Non-primitive data structures are built from primitive structures and emphasize structuring groups of homogeneous or heterogeneous data. The document describes common data structures like arrays, lists, stacks, queues and trees, and explains their properties and implementations.