data types

Aliases
  • data structure
  • data structures
  • data type
Image of Author
April 3, 2025 (last updated April 28, 2025)

Simple

Most programming languages will have the concept of an array/list and a map/dict/object. Most also have a native set perhaps built from the map structure. It is often from these three that more advanced data types can be built.

Advanced

Heap / Priority Queue

https://en.wikipedia.org/wiki/Heap_(data_structure)

Graphs

Graphs have vertices/nodes and edges/lines which are often "weighted". One would associate an edge with two vertices to connect them. You can also track the to-from directionality resulting in directed graphs.

Graphs are open ended but can be constrained for various reasons. You can prevent loops/cycles, for example, and when combined with directionality, create a popular advanced data type, a directed acyclic graph.

Queues

Simple queues are essentially lists with additional semantics. For example, a FIFO (first-in-first-out) queue could be implemented as pushing and popping from the head of a list.

Queue semantics can also be more complicated. For example a priority-queue would allow you to put items in the queue along with a rank or sort function, which would allow the pop-semantics to prioritize automatically which item should next come off the queue.

Probabilistic Data Structures

These data types make trade offs in accuracy in favor of performance. For example a Bloom Filter is a data type that tells you something like set-membership, but trades the accuracy of true/false for the probabilistic answers of false/probably-true. This is convenient for extremely large sets, where a normal set data type would exceed the memory capacity of a system.