/
pxlxnski
/
StringCompressionAlgorhitms
Обзор
Документация
Войти
/
pxlxnski
/
StringCompressionAlgorhitms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
pkg/compression/compression.go
34 строки
1 KB
Egor Polyanskiy
Adaprive Huffman algorithm completed.
25 окт 2025, 21:04
25 окт 2025, 21:04
c484bc1
Код
Авторство
О чём код?
package compression import "fmt" // algorithmRegistry реестр доступных алгоритмов var algorithmRegistry = map[string]Algorithm{ "huffman": &HuffmanAlgorithm{}, "fano": &FanoAlgorithm{}, "shenon": &ShannonAlgorithm{}, "shannon": &ShannonAlgorithm{}, "adaptivehuffman": &AdaptiveHuffmanAlgorithm{}, "bookstack": &BookstackAlgorithm{}, "gilbert": &GilbertAlgorithm{}, "lz77": &LZ77Algorithm{}, "lz78": &LZ78Algorithm{}, } func Compress(inputFile, outputFile, algorithmName string) error { alg, exists := algorithmRegistry[algorithmName] if !exists { return fmt.Errorf("неподдерживаемый алгоритм: %s", algorithmName) } return alg.Compress(inputFile, outputFile) } func Decompress(inputFile, outputFile, algorithmName string) error { alg, exists := algorithmRegistry[algorithmName] if !exists { return fmt.Errorf("неподдерживаемый алгоритм: %s", algorithmName) } return alg.Decompress(inputFile, outputFile) }