Техническое задание: Реализация алгоритма FGK на Python
Цель проекта
Разработать приложение, которое наглядно демонстрирует работу алгоритма динамического кодирования Хаффмана (FGK).
Основные требования
- Реализация алгоритма FGK (динамического кодирования Хаффмана) должна быть выполнена "с нуля" на чистом Python.
- Запрещено использование любых сторонних библиотек для реализации самого алгоритма сжатия.
- Разрешено применение библиотек только для целей визуализации процесса работы алгоритма (например, отрисовка деревьев, графиков).
- Код должен быть чистым, хорошо структурированным и документированным.
Функциональность приложения
- Возможность ввода произвольной текстовой строки для кодирования.
- Пошаговое выполнение алгоритма FGK с отображением изменений в дереве кодирования.
- Вывод итоговых кодов для каждого символа.
- Визуализация дерева Хаффмана на каждом шаге обработки входных данных.
- Расчет и отображение степени сжатия.
Ожидаемый результат
Готовое рабочее приложение с графическим интерфейсом или консольным управлением, которое позволяет экспериментировать с алгоритмом FGK, наблюдать за процессом построения кодов и анализировать эффективность сжатия.