Алфавитом называется конечное множество символов. Сообщением называется конечная последовательность символов. Множество всех сообщений алфавита А обозначается А*.

Код называется префиксным, если ни одно кодовое слово не является началом (префиксом) никакого другого кодового слова

Дерево кодирования Хаффмана - двоичное дерево, у которого каждый узел имеет вес, и при этом вес родителя равен суммарному весу его детей. Алгоритм построения дерева кодирования Хаффмана таков:

Двигаясь по кодовому дереву сверху вниз и последовательно выписывая двоичные цифры, соответствующие дугам, можно получить коды букв входного алфавита.