share knowledge of OS

Thursday, April 15, 2010

Data types

Primitive types

  • Boolean
  • Charactera
  • Integer
  • String
  • Double
  • Float

Composite types

  • Record (also called tuple or struct)
  • Union
  • Tagged union (also called a variant, variant record, discriminated union, or disjoint union)

Abstract data types

  • Container
  • Deque
  • List
  • Map
  • Multimap
  • Multiset
  • Priority queue
  • Queue
  • Set
  • Stack
  • String
  • Tree

Some properties of abstract data types:

Structure Stable Unique Cells per Node
Bag (multiset) no no 1
Set no yes 1
List yes no 1
Map no yes 2

"Stable" means that input order is retained. Other structures such as "linked list" and "stack" cannot easily be defined this way because there are specific operations associated with them.

Linear data structures

Arrays

  • Array
  • Bit field
  • Bit array
  • Bitboard
  • Bitmaps
  • Images
  • Dynamic array
  • Circular buffer
  • Control table
  • Gap Buffer
  • Hashed array tree
  • Heightfields
  • Lookup table
  • Matrix
  • Parallel array
  • Sparse array
  • Sparse matrix

Lists

  • Linked list
  • Doubly linked list
  • Xor linked list
  • Unrolled linked list
  • Zipper
  • VList
  • Skip list
  • Jump list
  • Self-organizing list

Trees

Binary trees

  • Binary tree
  • Binary search tree
  • Self-balancing binary search tree
  • Randomized binary search tree
  • Weight-balanced tree
  • Threaded binary tree
  • AVL tree
  • Red-black tree
  • AA tree
  • Scapegoat tree
  • Splay tree
  • T-tree
  • Rope
  • Top Trees
  • Tango Trees
  • Cartesian tree
  • Van Emde Boas tree
  • Treap

B-trees

  • B-tree
  • B+ tree
  • B*-tree
  • B sharp tree
  • Dancing tree
  • 2-3 tree
  • 2-3-4 tree
  • Queaps
  • Fusion tree
  • Bx-tree

Heaps

  • Heap
  • Binary heap
  • Binomial heap
  • Fibonacci heap
  • 2-3 heap
  • Soft heap
  • Pairing heap
  • Leftist heap
  • Treap
  • Beap
  • Skew heap
  • Ternary heap
  • D-ary heap

Tries

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

  • Trie
  • Radix tree
  • Suffix tree
  • Suffix array
  • Compressed suffix array
  • FM-index
  • Generalised suffix tree
  • B-trie
  • Judy array

Multiway trees

  • Ternary search 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

Space-partitioning trees

This is data structures used for space partitioning or binary space partitioning.

  • Segment tree
  • Interval tree
  • Range tree
  • Bin
  • Kd-tree
  • Implicit kd-tree
  • Min/max kd-tree
  • Adaptive k-d tree
  • Kdb tree
  • Quadtree
  • Octree
  • Linear octrees
  • 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
  • BSP tree

Application-specific trees

  • Syntax tree
  • Abstract syntax tree
  • Parse tree
  • Decision tree
  • Alternating decision tree
  • Minimax tree
  • Expectiminimax tree
  • Finger tree

Hashes

  • Hash table
  • Bloom filter
  • Hash list
  • Hash tree
  • Prefix hash tree
  • Hash trie
  • Hash array mapped trie
  • Distributed hash table
  • Koorde

Graphs

  • Graph
  • Adjacency list
  • Adjacency matrix
  • Graph-structured stack
  • Scene graph
  • Binary decision diagram
  • Zero suppressed decision