recursion
a method where the solution to a problem depends on solutions to smaller instances of the same problem or a method that calls itself
recursive case
the part where the function calls itself
base case
the condition to stop the recursion
two dimensional array
a collection of elements of the same data type that are stored in a tabular format
parent node
a node in a tree that has children (left, right, both)
left-child
a node on the left hand side below a parent node
right-child
a node on the right hand side below a parent node
subtree
a parent with children within another parent-child relationship
root
the top node in a tree
leaf
a node with no children
dynamic data structure
data structures that can change size during the execution of a program and they are a very efficient use of memory space