logo
Работа со структурой двоичного файла

2.5 Алгоритм сжатия файла

Частично алгоритм сжатия похож на алгоритм удаления промежуточной вершины, описанный в предыдущем пункте. Важной особенность алгоритма является то, что одновременно со сжатием происходит и балансировка дерева. Кратко алгоритм можно описать так:

1) Сбор информации о дереве (количество объектов)

2) Объявление массива в оперативной памяти размером с количество объектов в дереве

3) Сбор объектов из дерева в массив

4) Создание на основе массива нового дерева в файле

Таким образом, видно, что из файла извлекается только полезная информация, а весь "мусор" удаляется при пересоздании файла.

Рисунок 9. Сжатие файла и балансировка дерева