1 个不稳定版本
0.1.0 | 2023 年 9 月 16 日 |
---|
342 在 多媒体 中
24KB
210 代码行
Huffmanrs
Huffmanrs 是一个使用 Huffman 编码进行文本编码和解码的 Rust 库。
功能
- 编码文本。
- 解码代码。
安装
要在您的项目中使用 Huffmanrs,请将以下依赖项添加到您的 Cargo.toml 文件中
[dependencies]
huffmanrs = "0.1.0"
示例
use huffmanrs::{HuffmanNode, Huffman};
fn main() {
// Créer une instance de huffman
let mut huffman = Huffman::new();
// Demande un texte en entré pour calculer les fréquences et construire l'arbre d'encodage
huffman.build("hello");
// Exemple d'encodage
dbg!(huffman.encode("abbccc")); // encode le mot abbccc en 101111000
// Exemple de décodage
dbg!(huffman.decode("101111000")); // decode le code 101111000 en abbccc
// L'API de Huffman est disponible via Huffman::, vous pouvez donc construire votre propre implémentation de Huffman et réutiliser les composants qui vous intéressent, tels que Huffman::build_huffman_tree etc.
}
有关更多示例,请详细阅读文档和测试。
注意 !!!!!!!!
Huffman::build_frequency_table
不分配任何优先级给模式,因此如果多个模式具有相同的频率,例如 "hello" 中的 "h"、"e" 和 "o",则连续执行此代码不应给出相同的编码。
use huffmanrs::{HuffmanNode, Huffman};
fn main() {
// Créer une instance de huffman
let mut huffman = Huffman::new();
// Demande un texte en entré pour construire l'arbre de fréquence
huffman.build("hello");
// Exemple d'encodage
dbg!(huffman.encode("hello")); // sortie possible :1001111100, 1000111101, 0010111101 etc.
// Si ce comportement ne vous satisfait pas, vous pouvez réimplémenter Huffman::build_huffman_tree.
}
在这种情况下,为了解码,访问生成的频率表或树至关重要。
贡献
欢迎贡献!如果您想改进或添加 Huffmanrs 的功能,请在 GitHub 上提交一个 pull request。