/
pxlxnski
/
StringCompressionAlgorhitms
Обзор
Документация
Войти
/
pxlxnski
/
StringCompressionAlgorhitms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
pkg/compression/algorithms.go
116 строк
3 KB
Egor Polyanskiy
lz78 completed
04 дек 2025, 19:36
04 дек 2025, 19:36
1b2d50f
Код
Авторство
О чём код?
package compression // FanoAlgorithm, ShenonAlgorithm, AdaptiveHuffmanAlgorithm // BookstackAlgorithm, GilbertAlgorithm, LZ77Algorithm, LZ78Algorithm type HuffmanAlgorithm struct{} func (ha *HuffmanAlgorithm) Compress(inputFile, outputFile string) error { return compressHuffman(inputFile, outputFile) } func (ha *HuffmanAlgorithm) Decompress(inputFile, outputFile string) error { return decompressHuffman(inputFile, outputFile) } func (ha *HuffmanAlgorithm) Name() string { return "Huffman" } type FanoAlgorithm struct{} func (fa *FanoAlgorithm) Compress(inputFile, outputFile string) error { return compressFano(inputFile, outputFile) } func (fa *FanoAlgorithm) Decompress(inputFile, outputFile string) error { return decompressFano(inputFile, outputFile) } func (fa *FanoAlgorithm) Name() string { return "Fano" } type ShannonAlgorithm struct{} func (sa *ShannonAlgorithm) Compress(inputFile, outputFile string) error { return compressShannon(inputFile, outputFile) } func (sa *ShannonAlgorithm) Decompress(inputFile, outputFile string) error { return decompressShannon(inputFile, outputFile) } func (sa *ShannonAlgorithm) Name() string { return "Shannon" } type AdaptiveHuffmanAlgorithm struct{} func (aha *AdaptiveHuffmanAlgorithm) Compress(inputFile, outputFile string) error { return compressAdaptiveHuffman(inputFile, outputFile) } func (aha *AdaptiveHuffmanAlgorithm) Decompress(inputFile, outputFile string) error { return decompressAdaptiveHuffman(inputFile, outputFile) } func (aha *AdaptiveHuffmanAlgorithm) Name() string { return "AdaptiveHuffman" } type BookstackAlgorithm struct{} func (ba *BookstackAlgorithm) Compress(inputFile, outputFile string) error { return compressBookstack(inputFile, outputFile) } func (ba *BookstackAlgorithm) Decompress(inputFile, outputFile string) error { return decompressBookstack(inputFile, outputFile) } func (ba *BookstackAlgorithm) Name() string { return "Bookstack" } type GilbertAlgorithm struct{} func (ga *GilbertAlgorithm) Compress(inputFile, outputFile string) error { return compressGilbert(inputFile, outputFile) } func (ga *GilbertAlgorithm) Decompress(inputFile, outputFile string) error { return decompressGilbert(inputFile, outputFile) } func (ga *GilbertAlgorithm) Name() string { return "Gilbert" } type LZ77Algorithm struct{} func (lz *LZ77Algorithm) Compress(inputFile, outputFile string) error { return compressLZ77(inputFile, outputFile) } func (lz *LZ77Algorithm) Decompress(inputFile, outputFile string) error { return decompressLZ77(inputFile, outputFile) } func (lz77a *LZ77Algorithm) Name() string { return "LZ77" } type LZ78Algorithm struct{} func (lz *LZ78Algorithm) Compress(inputFile, outputFile string) error { return compressLZ78(inputFile, outputFile) } func (lz *LZ78Algorithm) Decompress(inputFile, outputFile string) error { return decompressLZ78(inputFile, outputFile) } func (lz78a *LZ78Algorithm) Name() string { return "LZ78" }