Advertisement Upgrade to remove ads

abstract data type

a description of operations on a data type that could have multiple possible implementations.

ancestors

in a tree, the union of a node's parent and the parent's ancestors.

array

A contiguous block of memory containing elements of the same type, accessed by numeric index.

ASCII

(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.

association list

a list of pairs, where each pair has a key and a value associated with the key.

backtrack

in a tree search, to move back from the node currently being examined to its parent.

base case

a simple case that can be solved easily, without recursion.

Big O

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.

binary tree

a tree in which each node has at most two children.

binary search

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)

...

boxed number

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.

branching factor

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.

child

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.

circular queue

a queue implemented within an array, where the first element of the array logically follows the last element.

class

in object-oriented programming, a description of a set of similar objects.

cons

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.

constructive

describes a function that makes a new data structure but does not modify its arguments.

depth

the number of links between the root of a tree and the leaves.

depth-first search

a search in which children of a node are considered (recursively) before siblings are considered.

dereference

to convert from a pointer (address) to the data that is pointed to.

descendants

all nodes below a given node in a tree.

design pattern

a pattern that describes a set of similar programs.

destructive

describes a function that modifies its arguments.

DFS

depth-first search.

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.

fair

describes a process in which every arriving customer will eventually be served.

FIFO

first-in, first-out: describes the ordering of a queue. A queue is fair.

filter

a process that removes unwanted elements from a collection.

first-child/next-sibling

a way of implementing trees that uses two pointers per node but can represent an arbitrary number of children of a node.

garbage

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.

gedanken

describes a thought experiment or view of an entity.

goal

an item (or description of items) being sought in a search.

grammar

a formal description of a language in terms of vocabulary and rules for writing phrases and sentences.

immutable

describes a data structure that cannot be changed once it has been created, such as Integer or String in Java.

inorder

an order of processing a tree in which the parent node is processed in between its children.

interior node

a node of a tree that has children.

interpreter

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.

intersection

given two sets, the intersection is the set of elements that are members of both sets.

intractable

a problem that is so hard (typically exponential) that it cannot be solved unless the problem is small.

JVM

Java Virtual Machine, an interpreter for compiled Java bytecodes.

leaf

a tree node containing a contents value but with no children.

LIFO

last-in, first out: describes the order of a stack.

linear

O(n), a problem whose solution requires a linear amount of time or space if the problem is of size n.

link

a pointer to the next element in a linked list.

linked list

a sequence of records, where each record contains a link to the next one.

merge

to combine two ordered linear structures into one.

node

an element of a linked list, tree, or graph, often represented by a data structure.

null dereference

a runtime error that occurs when an operation such as a method call is attempted on a null pointer.

object

a data structure that can be identified at runtime as being a member of a class.

ontology

a description of the kinds of objects that exist in a computer program, e.g. a Java class hierarchy.

operator

in a search tree, a program that changes a state into a child state, e.g. a move in a game.

parent

in a tree, a node that points to a given node.

pointer

a variable containing the address of other data.

postorder

an order of processing a tree in which the parent node is processed after its children.

preorder

an order of processing a tree in which the parent node is processed before its children.

quadratic

O(n2), a problem whose solution requires a quadratic amount of time or space if the problem is of size n.

queue

a data structure representing a sequence of items, which are removed in the same order as they were inserted.

random access

describes a data structure or device in which all accesses have the same cost, O(1).

recursion

a case where a program calls itself.

recursive case

a condition of the input data where the data will be handled by call(s) to the same program.

reference

a pointer to data.

reference type

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.

root

the top node of a tree, from which all other nodes can be reached.

runtime stack

a stack containing a stack frame of variable values for each active invocation of a procedure.

scope

the area of program text over which a variable can be referenced.

search

to look through a data structure until a goal object is found.

sentinel

an extra record at the start or end of a data structure such as a linked list, to simplify the processing.

set difference

given two sets, the set difference is the set of elements of the first set that are not members of the second set.

shadow

to hide similar items with the same name.

side-effect

any effect of a procedure other than returning a value, e.g. printing or modifying a data structure.

sort

to modify the order of a set of elements so that a desired ordering holds between them, e.g. alphabetic order.

stack frame

a section of the runtime stack holding the values of all variables for one invocation of a procedure.

stack space

the amount of space on the runtime stack required for execution of a program.

state

a description of the state of a process, such as a board game.

structure sharing

a case where two data structures share some elements.

successor

the next element in a linked list.

tail recursive

a function whose value either does not involve a recursive call, or is exactly the value of a recursive call.

taxonomy

a classification of objects into a tree structure that groups related objects.

Unicode

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.

union

given two sets, the union is the set of elements that are members of either set.

virtual machine

an abstract computer that is simulated by an interpreter program running on an actual computer.

well-founded ordering

an ordering that can be guaranteed to terminate, e.g. starting at a positive integer and counting down to 0.

word

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.

XML

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>

Please allow access to your computer’s microphone to use Voice Recording.

Having trouble? Click here for help.

We can’t access your microphone!

Click the icon above to update your browser permissions above and try again

Example:

Reload the page to try again!

Reload

Press Cmd-0 to reset your zoom

Press Ctrl-0 to reset your zoom

It looks like your browser might be zoomed in or out. Your browser needs to be zoomed to a normal size to record audio.

Please upgrade Flash or install Chrome
to use Voice Recording.

For more help, see our troubleshooting page.

Your microphone is muted

For help fixing this issue, see this FAQ.

Star this term

You can study starred terms together

NEW! Voice Recording

Create Set