全文预览

数据结构课程设计报告-哈夫曼编码译码器系统

上传者:塑料瓶子 |  格式:doc  |  页数:27 |  大小:254KB

文档介绍
算法Рint jsq(参数)Р{Р 初始化;Р forР{Р 接受命令;Р 处理命令;Р} Р}Р说明:统计字符串中各种字母的个数以及字符的种类Рvoid ChuffmanTree()Р{Р 初始化;Р forР{ Р 接受命令;Р 处理命令;Р}Р 输出字符统计情况;Р}Р说明:构造哈夫曼树Р③输出哈夫曼树的存储结构的初态和终态Р分别调用print1()和print2()来实现Рvoid print1(参数)Р{Р 初始化;Р 输出初态;Р}Р说明:输出哈夫曼树的初态Рvoid print2(参数)Р{Р forР{Р 输出终态;Р}Р}Р说明:输出哈夫曼树的终态Р④哈夫曼编码和译码Рvoid HuffmanEncoding(参数)Р{Р 定义变量;Р {Р 处理命令;Р}Р}Р说明:哈夫曼编码Рchar*decode(参数)Р{Р 定义变量;РwhileР{Р接受命令;Р处理命令;Р}Р}Р说明:哈夫曼译码Р(3)主要模块程序流程图Р下面介绍三个主要的程序模块流程图:Р ①主函数流程图:Р结束Р统计字符种类及频率Р字符总数numР建立哈夫曼树Р哈夫曼编码Р哈夫曼译码Р打开文件?Р开始Р否Р是Р 图3.1Р流程图注释:Р该图比较简单,主要是调用各个函数模块,首先代开已经存在的文件,然后统计总的字符数以及出现的各个字符和频率。然后才开始建立哈夫曼树,接着在哈夫曼树的基础上对其进行编码,编码之后才是译码。最后输出结束。Р②构造哈夫曼树:Р开始Р结束Р第i个结点权值Рi=num?Р创建哈夫曼树Р输出字符统计情况Р第i个根结点Рi=2*num-1?Рi=num?Р否Р是Р否Р是Р否Р是Р 图3.2Р流程图注释:Р该图是表示构造哈夫曼树的过程。首先输入num个叶结点的权值,当i=num是循环结束。然后进行哈夫曼树的构建,当i=2*num-1是循环结束。最后输出所得到的字符统计情况。

收藏

分享

举报
下载此文档