| Term 
 | Definition 
 
        | a heuristic search algorithm that attempts to find a desired goal using a heuristic function to estimate the distance from a given node to the goal. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a representation of a graph in which a boolean matrix contains a 1 at position (i, j) iff there is an arc from node i to node j |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a tree in which the heights of subtrees are approximately equal. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | describes a relation that is both injective and surjective (one-to-one and onto) |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a list structure that represents a set of bindings |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | to save a value locally to save re-computing or transferring it in the future |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | when two values to be stored in a hash table have the same hash value |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a circular path in a graph |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | an optimal greedy algorithm to find the minimum distance and shortest path in a weighted graph from a given start node |  | 
        |  | 
        
        | Term 
 
        | discrete event simulation |  | Definition 
 
        | a simulation in terms of events, in which the highest-priority (least time) event is removed from an event queue and executed, which may have the effect of scheduling future events |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | Definition a binary Boolean function whose output is 1 if its inputs are different. Abbreviated XOR.
 |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | to process a set of items using a specified function; another term for reduce |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | an algorithm that always tries the solution path that appears to be the best |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | describes a sort that does not require any additional memory |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | an object containing data and methods to iterate through a collection of data, allowing processing of one data item at a time. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | in MapReduce, a program that processes an element of the input and emits one or more (key, value) pairs |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a priority queue in which the maximum element is removed first |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a priority queue in which the minimum element is removed first |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | describes a mapping in which each element of the domain maps to a single element of the range. Also, injective |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a sequence of steps along arcs in a graph |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | in Quicksort, a "center" value used in partitioning the set to be sorted |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a set of values that are the targets of a mapping |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | to apply a different hashing function to a key when a collision occurs |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a way of storing a multiple-dimensioned array in memory, such that elements of a row are in adjacent memory addresses |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a path between two nodes in a graph that does not revisit any intermediate node |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | an array in which most of the elements are either 0 or empty |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a self-balancing binary tree that places recently accessed elements near the top of the tree for fast access. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | a data structure that links names to information about the objects denoted by the names. |  | 
        |  | 
        
        | Term 
 | Definition 
 
        | changing the links in a binary tree to change the relative heights of the child subtrees, while leaving the sort order of the tree unchanged |  | 
        |  | 
        
        | Term 
 | Definition 
 | 
        |  |