Data structures are categorised into two types: primitive and non-primitive. Primitive types include integers, float, character, and boolean. Non-primitive types can be divided further into linear and non-linear structures. Linear structures consist of arrays, linked lists, stacks, and queues while non-linear structures include trees and graphs.