# Dynamic-Huffman-coding **Repository Path**: yaborn/Dynamic-Huffman-coding ## Basic Information - **Project Name**: Dynamic-Huffman-coding - **Description**: 【C++】自适应哈夫曼编码 - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-05-10 - **Last Updated**: 2023-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Dynamic-Huffman-coding 【C++】自适应哈夫曼编码 TODO: 1. 文档编写ing --- 编码器执行过程 === ==========编码器载入码表:* A B C D ==========开始编码:AADCCDD 长度:7 输入 第1个字符:A 首次编码 到达叶子:* 更新值:0->0 到达叶子:A 更新值:00001->1 输出序列:0 00001 输入 第2个字符:A 获得指针:A 到达叶子:* 更新值:0->0 到达叶子:A 更新值:1->1 输出序列:0 00001 1 输入 第3个字符:D 首次编码 到达叶子:* 更新值:0->00 到达叶子:D 更新值:00100->01 到达叶子:A 更新值:1->1 输出序列:0 00001 1 0 00100 输入 第4个字符:C 首次编码 到达叶子:* 更新值:00->000 到达叶子:C 更新值:00011->001 到达叶子:D 更新值:01->01 到达叶子:A 更新值:1->1 输出序列:0 00001 1 0 00100 00 00011 输入 第5个字符:C 获得指针:C 到达叶子:A 更新值:1->0 到达叶子:* 更新值:000->100 到达叶子:D 更新值:01->101 到达叶子:C 更新值:001->11 输出序列:0 00001 1 0 00100 00 00011 001 输入 第6个字符:D 获得指针:D 到达叶子:A 更新值:0->0 到达叶子:* 更新值:100->100 到达叶子:D 更新值:101->101 到达叶子:C 更新值:11->11 输出序列:0 00001 1 0 00100 00 00011 001 101 输入 第7个字符:D 获得指针:D 到达叶子:A 更新值:0->0 到达叶子:* 更新值:100->100 到达叶子:C 更新值:11->101 到达叶子:D 更新值:101->11 输出序列:0 00001 1 0 00100 00 00011 001 101 101 解码器执行过程 === ==========解码器载入码表:* A B C D ==========开始解码:0 00001 1 0 00100 00 00011 001 101 101 长度:10 输入 第1个字符:0 为NEW位 输入 第2个字符:00001 对应字符为:A 到达叶子:* 更新值:0->0 到达叶子:A 更新值:00001->1 解码字符串:A 输入 第3个字符:1 获得指针:A 到达叶子:* 更新值:0->0 到达叶子:A 更新值:1->1 解码字符串:AA 输入 第4个字符:0 为NEW位 输入 第5个字符:00100 对应字符为:D 到达叶子:* 更新值:0->00 到达叶子:D 更新值:00100->01 到达叶子:A 更新值:1->1 解码字符串:AAD 输入 第6个字符:00 为NEW位 输入 第7个字符:00011 对应字符为:C 到达叶子:* 更新值:00->000 到达叶子:C 更新值:00011->001 到达叶子:D 更新值:01->01 到达叶子:A 更新值:1->1 解码字符串:AADC 输入 第8个字符:001 获得指针:C 到达叶子:A 更新值:1->0 到达叶子:* 更新值:000->100 到达叶子:D 更新值:01->101 到达叶子:C 更新值:001->11 解码字符串:AADCC 输入 第9个字符:101 获得指针:D 到达叶子:A 更新值:0->0 到达叶子:* 更新值:100->100 到达叶子:D 更新值:101->101 到达叶子:C 更新值:11->11 解码字符串:AADCCD 输入 第10个字符:101 获得指针:D 到达叶子:A 更新值:0->0 到达叶子:* 更新值:100->100 到达叶子:C 更新值:11->101 到达叶子:D 更新值:101->11 解码字符串:AADCCDD