ArticleslgStudy

computer science

List of data structures

List of data structures is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand List of data structures rather than just read about it. In short: 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.

Key takeaways

  • List of data structures belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect List of data structures to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of List of data structures from memory before moving on to harder problems.

Reference excerpt

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.

Data types

Primitive types

Boolean, true or false. Character Floating-point representation of a finite subset of the rationals. Including single-precision and double-precision IEEE 754 floats, among others Fixed-point representation of the rationals Integer, a direct representation of either the integers or the non-negative integers Reference, sometimes referred to as a pointer or handle, is a value that refers to another value, possibly including itself Symbol, a unique identifier Enumerated type, a set of symbols Complex, representation of complex numbers

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

Container List Tuple Associative array, Map Multimap Set Multiset (bag) Stack Queue (example Priority queue) Double-ended queue Graph (example Tree, Heap) Some properties of abstract data types:

"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 Array Associative array Bit array Bit field Bitboard Bitmap Circular buffer Control table Image Dope vector Dynamic array Gap buffer Hashed array tree Lookup table Matrix Parallel array Sorted array Sparse matrix Iliffe vector Variable-length array

Lists Doubly linked list Array list Linked list also known as a Singly linked list Association list Self-organizing list Skip list Unrolled linked list VList Conc-tree list Xor linked list Zipper Doubly connected edge list also known as half-edge Difference list Free list

Trees

Trees are a subset of directed acyclic graphs.

Binary trees AA tree AVL tree Binary search tree Binary tree Cartesian tree Conc-tree list Left-child right-sibling binary tree Order statistic tree Pagoda Randomized binary search tree Red–black tree Rope Scapegoat tree Self-balancing binary search tree Splay tree T-tree Tango tree Threaded binary tree Top tree Treap WAVL tree Weight-balanced tree Zip tree

B-trees B-tree B+ tree B*-tree Dancing tree 2–3 tree 2–3–4 tree Queap Fusion tree Bx-tree

Heaps Heap Min-max heap Binary heap B-heap Weak heap Binomial heap Fibonacci heap AF-heap Leonardo heap 2–3 heap Soft heap Pairing heap Leftist heap Treap Beap Skew heap Ternary heap D-ary heap Brodal queue

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

Radix tree Suffix tree Suffix array Compressed suffix array FM-index Generalised suffix tree B-tree Judy array Trie X-fast trie Y-fast trie Merkle tree

Multi-way trees Ternary search tree Ternary tree K-ary tree And–or tree (a,b)-tree Link/cut tree SPQR-tree Spaghetti stack Disjoint-set data structure (Union-find data structure) Fusion tree Enfilade Exponential tree Fenwick tree Van Emde Boas tree Rose tree

Space-partitioning trees These are data structures used for space partitioning or binary space partitioning.

Segment tree Interval tree Range tree Bin K-d tree Implicit k-d tree Min/max k-d tree Relaxed k-d tree Adaptive k-d tree Quadtree Octree Linear octree Z-order UB-tree R-tree R+ tree R* tree Hilbert R-tree X-tree Metric tree Cover tree M-tree VP-tree BK-tree Bounding interval hierarchy Bounding volume hierarchy BSP tree Rapidly exploring random tree

Application-specific trees Abstract syntax tree Parse tree Decision tree Alternating decision tree Game tree Expectiminimax tree Finger tree Expression tree Log-structured merge-tree PQ tree

Hash-based structures Approximate Membership Query Filter Bloom filter Cuckoo filter Quotient filter Count–min sketch Distributed hash table Double hashing Dynamic perfect hash table Hash array mapped trie Hash list Hash table Hash tree Hash trie Koorde Prefix hash tree Rolling hash MinHash Ctrie

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

Graph Adjacency list Adjacency matrix Graph-structured stack Scene graph Decision tree Binary decision diagram Zero-suppressed decision diagram And-inverter graph Directed graph Directed acyclic graph Propositional directed acyclic graph Multigraph Hypergraph

Other Lightmap Winged edge Quad-edge Routing table Symbol table Piece table E-graph

See also List of algorithms Purely functional data structure Blockchain, a hash-based chained data structure that can persist state history over time

External links Tommy Benchmarks Comparison of several data structures.

Worked examples

Example 1 — a first encounter with List of data structures

Start with the simplest possible case. Write down what List of data structures claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to List of data structures before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about List of data structures ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of List of data structures

In research
List of data structures appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses List of data structures in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
List of data structures is common in secondary-school and first-year university syllabi. It links to neighbouring topics Computing-related lists, Data structures, so understanding it makes those chapters shorter.
In everyday life
Look for List of data structures outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study List of data structures in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what List of data structures means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain List of data structures out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is List of data structures in simple terms?

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.

Why does List of data structures matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study List of data structures?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on List of data structures.

Tags

  • Computing-related lists
  • Data structures

Keep exploring