abstract data type
a description of operations on a data type that could have multiple possible implementations.
in a tree, the union of a node's parent and the parent's ancestors.
A contiguous block of memory containing elements of the same type, accessed by numeric index.
(pronounced "ask-key") an abbreviation of American Standard Code for Information Interchange, a character code that maps between 8-bit binary integers and characters such as letters, numbers, and punctuation. There are 256 possible ASCII codes, of which 95 are printable.
a list of pairs, where each pair has a key and a value associated with the key.
in a tree search, to move back from the node currently being examined to its parent.
a simple case that can be solved easily, without recursion.
an abstracted function that describes the amount of computer time or memory space required by an algorithm, as a function of problem size. For problems larger than a certain size, the actual time or space required will be less than the Big O multiplied by some constant.
a tree in which each node has at most two children.
search of a binary tree or other structure, in which the size of the set to be searched is cut in half at each step.
binary search tree (BST)
a number that is defined as an object, so that it has a runtime type and methods that can be used, e.g. Integer in Java.
in a search tree, the number of children of a given node. Often, the branching factors of individual nodes will vary, so an average value may be used.
in a tree, a node pointed to by a parent node.
circularly linked list
a linked list in which the last element points back to the first element.
a queue implemented within an array, where the first element of the array logically follows the last element.
in object-oriented programming, a description of a set of similar objects.
1. in Lisp, the function that constructs a pair of pointers, or basic element of list structure. 2. a cons data structure. 3. to make a cons data structure.
describes a function that makes a new data structure but does not modify its arguments.
the number of links between the root of a tree and the leaves.
a search in which children of a node are considered (recursively) before siblings are considered.
to convert from a pointer (address) to the data that is pointed to.
all nodes below a given node in a tree.
a pattern that describes a set of similar programs.
describes a function that modifies its arguments.
divide and conquer
a problem-solving strategy in which a problem is broken down into sub-problems, until simple subproblems are reached.
doubly linked list
a linked list in which each element has both forward and backward pointers.
describes a process in which every arriving customer will eventually be served.
first-in, first-out: describes the ordering of a queue. A queue is fair.
a process that removes unwanted elements from a collection.
a way of implementing trees that uses two pointers per node but can represent an arbitrary number of children of a node.
1. data that is incorrect, meaningless, or random; 2. storage that is no longer pointed to by any variable and therefore can no longer be accessed.
describes a thought experiment or view of an entity.
an item (or description of items) being sought in a search.
a formal description of a language in terms of vocabulary and rules for writing phrases and sentences.
describes a data structure that cannot be changed once it has been created, such as Integer or String in Java.
an order of processing a tree in which the parent node is processed in between its children.
a node of a tree that has children.
a program that reads instructions, determines what they say, and executes them. The CPU is an interpreter for machine language; the JVM is an interpreter for compiled Java bytecodes.
given two sets, the intersection is the set of elements that are members of both sets.
a problem that is so hard (typically exponential) that it cannot be solved unless the problem is small.
Java Virtual Machine, an interpreter for compiled Java bytecodes.
a tree node containing a contents value but with no children.
last-in, first out: describes the order of a stack.
O(n), a problem whose solution requires a linear amount of time or space if the problem is of size n.
a pointer to the next element in a linked list.
a sequence of records, where each record contains a link to the next one.
to combine two ordered linear structures into one.
an element of a linked list, tree, or graph, often represented by a data structure.
a runtime error that occurs when an operation such as a method call is attempted on a null pointer.
a data structure that can be identified at runtime as being a member of a class.
a description of the kinds of objects that exist in a computer program, e.g. a Java class hierarchy.
in a search tree, a program that changes a state into a child state, e.g. a move in a game.
in a tree, a node that points to a given node.
a variable containing the address of other data.
an order of processing a tree in which the parent node is processed after its children.
an order of processing a tree in which the parent node is processed before its children.
O(n2), a problem whose solution requires a quadratic amount of time or space if the problem is of size n.
a data structure representing a sequence of items, which are removed in the same order as they were inserted.
describes a data structure or device in which all accesses have the same cost, O(1).
a case where a program calls itself.
a condition of the input data where the data will be handled by call(s) to the same program.
a pointer to data.
a type in which variables of that type are pointers to objects. In the code Integer i = 3, the variable i holds a pointer to the Integer object that contains the value. In int j = 3, the variable j contains the value. In Java, only reference types have methods.
the top node of a tree, from which all other nodes can be reached.
a stack containing a stack frame of variable values for each active invocation of a procedure.
the area of program text over which a variable can be referenced.
to look through a data structure until a goal object is found.
an extra record at the start or end of a data structure such as a linked list, to simplify the processing.
given two sets, the set difference is the set of elements of the first set that are not members of the second set.
to hide similar items with the same name.
any effect of a procedure other than returning a value, e.g. printing or modifying a data structure.
to modify the order of a set of elements so that a desired ordering holds between them, e.g. alphabetic order.
a section of the runtime stack holding the values of all variables for one invocation of a procedure.
the amount of space on the runtime stack required for execution of a program.
a description of the state of a process, such as a board game.
a case where two data structures share some elements.
the next element in a linked list.
a function whose value either does not involve a recursive call, or is exactly the value of a recursive call.
a classification of objects into a tree structure that groups related objects.
a character code that maps between binary numbers and the characters used in most modern languages, more than 110,000 characters. The lowest values of the UTF-8 encoding of Unicode are the same as ASCII, allowing characters to be 8 bits when staying within the ASCII character set. For other languages, more bits are used. Java uses Unicode.
given two sets, the union is the set of elements that are members of either set.
an abstract computer that is simulated by an interpreter program running on an actual computer.
an ordering that can be guaranteed to terminate, e.g. starting at a positive integer and counting down to 0.
a group of bits that are treated as a unit and processed in parallel by a computer CPU. Common word sizes are 32 bits and 64 bits.
eXtensible Markup Language, a way of writing data in a tree-structured form by enclosing items in pairs of opening and closing tags, e.g. <zipcode> 78712 </zipcode>