https://zh.wikipedia.org/wiki/数据结构术语列表
https://en.wikipedia.org/wiki/List_of_data_structures
Data types
Primitive types
- Boolean, true or false.
- Character
- Floating-point numbers, limited precision approximations of real number values.
- Including Single precision and Double precision IEEE 754 Floats, among others
- Fixed-point numbers
- Integer, integral or fixed-precision values.
- Reference (also called a pointer or handle), a small value referring to another object's address in memory, possibly a much larger one.
- Enumerated type, a small set of uniquely named values.
Composite types or non-primitive type
- Array (as an example String which is an array of characters)
- Record (also called tuple or structure)
- Union (Tagged union is a subset, also called variant, variant record, discriminated union, or disjoint union)
Abstract data types
- Container
- List
- Tuple
- Multimap (example Associative array)
- Set
- Multiset (bag)
- Stack
- Queue (example Priority queue)
- Double-ended queue
- Graph (example Tree, Heap)
Some properties of abstract data types:
Structure | Order | Unique |
---|---|---|
List | yes | no |
Associative array | no | yes |
Set | no | yes |
Stack | yes | no |
Multimap | no | no |
Multiset (bag) | no | no |
Queue | yes | no |
Order means the insertion sequence counts. Unique means that duplicate elements are not allowed, 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
- Bit array
- Bit field
- Bitboard
- Bitmap
- Circular buffer
- Control table
- Image
- Dope vector
- Dynamic array
- Gap buffer
- Hashed array tree
- Heightmap
- Lookup table
- Matrix
- Parallel array
- Sorted array
- Sparse matrix
- Iliffe vector
- Variable-length array
Lists
- Doubly linked list
- Array list
- 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
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
B-trees
- B-tree
- B+ tree
- B*-tree
- B sharp tree
- Dancing tree
- 2-3 tree
- 2-3-4 tree
- Queap
- Fusion tree
- Bx-tree
- AList
Heaps
- 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
Trees
In these data structures each tree node compares a bit slice of key values.
- Tree (data structure)
- Radix tree
- Suffix tree
- Suffix array
- Compressed suffix array
- FM-index
- Generalised suffix tree
- B-tree
- Judy array
- X-fast tree
- Y-fast tree
- Merkle tree
- Ctree
Multiway trees
- Ternary tree
- K-ary tree
- And–or tree
- (a,b)-tree
- Link/cut tree
- SPQR-tree
- Spaghetti stack
- Disjoint-set 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
- Minimax tree
- Expectiminimax tree
- Finger tree
- Expression tree
- Log-structured merge-tree
- Lexicographic Search Tree
Hash-based structures
- Bloom 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
- Quotient filter
- 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
- Zero-suppressed decision diagram
- And-inverter graph
- Directed graph
- Directed acyclic graph
- Propositional directed acyclic graph
- Multigraph
- Hypergraph
数据类型
原始类型
- 布尔:只有“真”和“假”两种值的类型。
- 字符:代表一个字体,可以是一个英文字母或是一个中文字。
- 整数:可以表现有限范围的整数。
- 浮点数:可以表示有限位数的有理数,常用来近似实数值。
- 双精度浮点数:相对于浮点数,双精度浮点数有两倍的精度。
- 枚举:一个命名不重复的值的集合。
复合类型
抽象数据类型
线性数据结构
数组
- 数组
- 位数组
- 位段
- 环形缓冲器
- 控制表
- 查找表
- 矩阵
- 稀疏矩阵
- 可变长数组
- Bitboard
- Bitmap
- System image
- Dope vector
- Dynamic array
- Gap buffer
- Hashed array tree
- Heightmap
- 平行数组
- Sorted array
- Iliffe vector
列表
- 数组列表
- 链表
- 双向链表
- Self-organizing list
- 跳跃列表
- Unrolled linked list
- VList
- 异或链表
- Zipper
- Doubly connected edge list
- Difference list
- 自由表
- Conc-tree list
树
二叉树
- AA树
- AVL树
- 二叉搜索树
- 二叉树
- 笛卡尔树
- 红黑树
- 替罪羊树
- 平衡树
- 伸展树
- 线索二叉树
- 树堆
- 加权平衡树
- 节点大小平衡树
- Left-child right-sibling binary tree
- 顺序统计树
- Pagoda
- Randomized binary search tree
- Rope
- Self-balancing binary search tree
- T-tree
- Tango tree
- Top tree
- WAVL tree
B树
堆
- 堆
- 二叉堆
- 二项堆
- 斐波那契堆
- Weak 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
Trie
- 前缀树
- 基数树
- 后缀树
- Suffix array
- Compressed suffix array
- FM-index
- Generalised suffix tree
- B-trie
- Judy array
- X-fast trie
- Y-fast trie
- Merkle tree
- Ctrie
多叉树
- Ternary tree
- K-ary tree
- And–or tree
- (a,b)-tree
- Link/cut tree
- SPQR-tree
- Spaghetti stack
- Disjoint-set data structure
- Fusion tree
- Enfilade
- Exponential tree
- Fenwick tree
- Van Emde Boas tree
- Rose tree
空间分割树
- 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
应用相关树
- Abstract syntax tree
- Parse tree
- Decision tree
- Alternating decision tree
- Minimax tree
- Expectiminimax tree
- Finger tree
- Expression tree
- Log-structured merge-tree
- Lexicographic Search Tree
散列表
- Bloom 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
- Quotient filter
- Ctrie
图
- 图
- 邻接表
- 邻接矩阵
- Graph-structured stack
- 场景图
- 二元决策图
- Zero-suppressed decision diagram
- And-inverter graph
- 有向图
- 有向无环图
- Propositional directed acyclic graph
- 伪图
- 超图