Деревом называется связный ациклический граф. Для некоторых алгоритмов используется лес - граф, в котором каждая компонента связности является деревом.
Число ребер в дереве всегда на единицу меньше, чем число его вершин.
Любую вершину в дереве можно назначить корнем и построить так называемое корневое дерево. Корень располагается вверху, на нулевом уровне дерева. Ниже корня располагаются смежные с ним вершины, составляющие первый уровень дерева. Вершины, соединенные с корнем через два ребра, составляют второй уровень дерева, и т.д.
Корневые деревья используются в информатике для описания иерархических структур, таких как структура каталогов файловой системы, структура HTML-страницы (DOM).
Все вершины, принадлежащие маршруту от корня дерева до вершины v, называются предками вершины v. Совокупность всех вершин, для которых вершина v является предком, называют потомками v. Вершина, у которой нет потомков, называется листом.
Глубина вершины v вычисляется как длина пути от корня до этой вершины. Высота дерева вычисляется максимальная глубина для листьев дерева.
Упорядоченным называется такое корневое дерево, в котором важен порядок потомков каждой вершины. Двоичное (бинарное) дерево можно определить как упорядоченное дерево, каждая вершина которого имеет не более двух потомков, причем каждый из потомков считается либо левым, либо правым потомком своего родителя.
Двоичным деревом поиска называют двоичное дерево, каждой вершине которой назначено число, которое больше, чем число, назначенное ее левому потомку, и меньше, чем число, назначенное ее правому потомку.
В программах бинарные деревья реализуют в виде структуры данных, узлы которой соответствуют вершинам дерева и содержат связянную с ней информацию, а также два указателя на его левого и правого потомка.
Для упрощения операций можно сделать дополнительные указатели на родительские узлы.
Произвольное упорядоченное дерево можно представить как двоичное, левый указатель будет содержать ссылку на первого потомка текущей вершины, а правый — на следующую родственную ей вершину.
Также можно добавить два указателя на родительский узел и предыдущую родственную вершину (DOM).