哈夫曼编码译码系统
需求分析
程序的基本功能:
构造哈夫曼树及哈夫曼编码:从终端读入字符集大小n、n个字符以及n个对应的权值,建立哈夫曼树;利用已将建好的哈弗曼树求每个叶结点的哈夫曼编码,并保存。
编码:利用已构造的哈弗曼编码对“明文”文件中的正文进行编码,然后将结果存入“密文”文件中。
译码:将“密文”文件中的0、1代码序列进行译码。
打印“密文”文件:将文件以紧凑格式显示在终端上,同时,将此字符形式的编码保存。
打印哈夫曼树:将已在内存中的哈夫曼以凹入表形式显示在终端上。
输入输出要求:
从键盘接收字符集大小n、以及n个字符和n个权值;
构造哈夫曼树:将HFMTree数组中的各个位置的各个域都添上相关的值,并将结构体数组存入文件HTree.txt中。
打印哈夫曼树:从HFMTree数组读取相关的结点信息,以凹入表方式将各个结点画出来;
构造哈夫曼编码:先从文件HTree.txt中读入相关的字符信息进行哈夫曼编码,将字符与其对应的编码存入文件HNode.txt中;
编码:利用已构造的哈夫曼树对文件进行编码,打印结果,并将结果存入新建文件中;
译码:将密文文件中的内容利用HNode.txt中建立的编码规则进行翻译,打印结果,并将结果存入新建文件中。
测试数据:
输入叶子结点个数为4,权值集合为{1,3,5,7},字符集合为{A,B,C,D},且字符集与权值集合一一对应。
概要设计
原创力文档

文档评论(0)