Data structures are representations of the logical relationships between data elements and are classified into primitive and non-primitive categories. Primitive data structures include basic types like integers and floats, while non-primitive types encompass arrays, lists, stacks, queues, trees, and graphs, which are derived from primitive types. The choice of data structure affects the efficiency of algorithms and program design, as each type supports different operations and use cases.