Data structures can be classified as either contiguous or linked, depending upon whether they are based on arrays or pointers.

Contiguously allocated structures are composed of single slabs of memory. These include arrays, matrices, heaps, and hash tables.

Linked data structures are composed of distinct chunks of memory bound together by pointers, and include lists, trees, and graph adjacency lists.