This is a list of well-known data structures. For a wider list of terms, see list of terms relating to algorithms and data structures. For a comparison of running times for a subset of this list see comparison of data structures.

Data types

Primitive types

Main article: Primitive type

Composite types or non-primitive type

Main article: Composite type

Abstract data types

Main article: Abstract data type

Some properties of abstract data types:

This article needs attention from an expert in Computer science. The specific problem is: further features needed. WikiProject Computer science may be able to help recruit an expert. (June 2022)
Structure Ordered? Uniqueness?
List yes no
Associative array no keys (indexes) only
Set no yes
Stack yes no
Multimap no no
Multiset (bag) no no
Queue yes no

"Ordered" means that the elements of the data type have some kind of explicit order to them, where an element can be considered "before" or "after" another element. This order is usually determined by the order in which the elements are added to the structure, but the elements can be rearranged in some contexts, such as sorting a list. For a structure that isn't ordered, on the other hand, no assumptions can be made about the ordering of the elements (although a physical implementation of these data types will often apply some kind of arbitrary ordering). "Uniqueness" means that duplicate elements are not allowed. Depending on the implementation of the data type, attempting to add a duplicate element may either be ignored, overwrite the existing element, or raise an error. The detection for duplicates is based on some inbuilt (or alternatively, user-defined) rule for comparing elements.

Linear data structures

A data structure is said to be linear if its elements form a sequence.

Arrays

Lists

Trees

Main article: Tree (data structure)

Trees are a subset of directed acyclic graphs.

Binary trees

B-trees

Heaps

Bit-slice trees

In these data structures each tree node compares a bit slice of key values.

Multi-way trees

Space-partitioning trees

These are data structures used for space partitioning or binary space partitioning.

Application-specific trees

Hash-based structures

Graphs

Many graph-based data structures are used in computer science and related fields:

Other

See also