目 录
1 题目介绍 ......................................................... 1
1.1 问题描述 ....................................................... 1
1.1.1 问题背景 ................................................... 1
1.1.2 主要任务 ................................................... 1
1.2 问题分析 ...................................................... 1
2 系统总体设计 ..................................................... 2
2.1 系统总体功能 .................................................. 2
2.2 系统总体流程 .................................................. 3
3 数据结构设计 ..................................................... 4
3.1 HUFFMAN 类 ...................................................... 4
3.2 HUFFMAN NODE 结构体 .............................................. 5
4 功能模块设计 ..................................................... 6
4.1 输入字符以及对应的频度模块 .................................... 6
4.2 解码模块 ...................................................... 7
5 系统测试与运行结果 ............................................... 8
5.1 调试及调试分析 ................................................ 8
5.2 测试用例 ...................................................... 8
6 总 结 ........................................................... 13
参考文献 ........................................................... 14
附 录 (程序清单) ............................................... 15
1 题目介绍
1.1问题描述
在通讯发报应用中,需要让应用对输入的字符集以及字符频度进行处理,构造哈夫曼树,并进行哈夫曼编码。比如输入以下内容:
字符集:A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
字符频度:186,64,13,22,32,103,21,15,47,571,5,32,20,57,
63,15,1,48,51,80,23,7,18,2,16,38
1.1.1问题背景
在通讯发报中,需要对发出的字符串进行缩短,进行最大化的无损压缩,由此想到构造哈夫曼树,并进行哈夫曼编码,频度最高的字母使用较短的编码,频度低的字母使用较长的编码。
1.1.2主要任务
(1)由用户来输入初始字符集、相应字符及字符频度。
(2)输入一个要发报的字符串,将其编码后发报。
(3)接收一组发报信息,将其还原为字符序列。