Reference articles on history, science, culture and more
Encyclopedia

List of data structures

Data organization and storage formats

This is a list of well-known data structures. For a comparison of running times for a subset of this list see comparison of data structures.

01Data types

Primitive types

Composite types or non-primitive type

  • Array, a sequence of elements of the same type stored contiguously in memory
  • Record (also called a structure or struct), a collection of fields
  • Product type (also called a tuple), a record in which the fields are not named
  • String, a sequence of characters representing text
  • Union, a datum which may be one of a set of types
  • Tagged union (also called a variant, discriminated union or sum type), a union with a tag specifying which type the data is

Abstract data types

Some properties of abstract data types:

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.

02Linear data structures

03Trees

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

04Hash-based structures

05Graphs

06Other

Watch videos about List of data structuresExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article List of data structures, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.