The NIST Dictionary of Algorithms and Data Structures is a reference work maintained by the U.S. National Institute of Standards and Technology. It defines a large number of terms relating to algorithms and data structures. For algorithms and data structures not necessarily mentioned here, see list of algorithms and list of data structures. This list of terms was originally derived from the index of that document, and is in the public domain, as it was compiled by a Federal Government employee as part of a Federal Government work. Some of the terms defined are: A absolute performance guarantee abstract data type (ADT) (a,b)-tree accepting state Ackermann's function active data structure acyclic directed graph adaptive heap sort adaptive Huffman coding adaptive k-d tree adaptive sort address-calculation sort adjacency list representation adjacency matrix representation adversary algorithm algorithm BSTW algorithm FGK algorithmic efficiency algorithmically solvable algorithm V all pairs shortest path alphabet Alpha Skip Search algorithm alternating path alternating Turing machine alternation American flag sort amortized cost ancestor and American National Standards Institute (ANSI) antichain antisymmetric relation AP Apostolico–Crochemore Apostolico–Giancarlo algorithm approximate string matching approximation algorithm arborescence arithmetic coding array array index array merging array search articulation point A* search algorithm assignment problem association list associative associative array asymptotically tight bound asymptotic bound asymptotic lower bound asymptotic space complexity asymptotic time complexity asymptotic upper bound augmenting path automaton average case average-case cost AVL tree axiomatic semantics B backtracking bag Baillie–PSW primality test balanced binary search tree balanced binary tree balanced k-way merge sort balanced merge sort balanced multiway merge balanced multiway tree balanced quicksort balanced tree balanced two-way merge sort BANG file Batcher sort Baum Welch algorithm BB α tree BDD BD-tree Bellman–Ford algorithm Benford's law best case best-case cost best-first search biconnected component biconnected graph bidirectional bubble sort big-O notation binary function binary fuse filter binary GCD algorithm binary heap binary insertion sort binary knapsack problem binary priority queue binary relation binary search binary search tree binary tree binary tree representation of trees bingo sort binomial heap binomial tree bin packing problem bin sort bintree bipartite graph bipartite matching bisector bitonic sort bit vector Bk tree bdk tree (not to be confused with k-d-B-tree) block block addressing index blocking flow block search Bloom filter blossom (graph theory) bogosort boogol boolean boolean expression boolean function bottleneck traveling salesman bottom-up tree automaton boundary-based representation bounded error probability in polynomial time bounded queue bounded stack