Ordered Trees: when the order of subtrees is significant.
Unordered: maybe a family tree.
Ordered: maybe left child comes before right child in alphabetical order.
Structural definition of binary trees: a binary tree is either empty or its has 3 parts:
Properties of recursive data structures can usually be computed in a recursive manner that mirrors their definition.
int size (binary_tree *t) { return is_empty(t) ? 0 : 1 + size(t->left) + size(t->right); }