哈夫曼编译树.pdf

上传人:H****o 文档编号:56686956 上传时间:2022-11-02 格式:PDF 页数:12 大小:282.08KB
返回 下载 相关 举报
哈夫曼编译树.pdf_第1页
第1页 / 共12页
哈夫曼编译树.pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《哈夫曼编译树.pdf》由会员分享,可在线阅读,更多相关《哈夫曼编译树.pdf(12页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、哈夫曼编码译码器实验报告2011 级网络工程1 班姓名:翁轩轩学号:41109040116 完成日期:2013.01.03 1需求分析(1)输入字符和权值;(2)输出哈夫曼树及哈夫曼编码;(3)程序可以根据字符使用的频率设计哈夫曼编码;(4)测试数据:2概要设计本程序的数据类型定义为typedef struct unsigned int weight;unsigned int parent,lchild,rchild;HTNode,*HuffmanTree;typedef char*HuffmanCode;所实现的功能函数如下void initHuffmanTree();/选择初始化哈夫曼树的

2、方式int openfileInit();/通过打开的data.txt文件初始化哈夫曼树该文件是为了测试数据2 包涵 26 个字符int inputInit();/通过手动输入字符初始化哈夫曼树int HuffmanCoding(int*w);/初始化哈夫曼数,按照哈夫曼规则建立二叉树。此函数块调用了 Select()函数。void Select(int j,int&s1,int&s2);/选择 parent为 0,且 weight 最小的两个节点序号为 s1,s2 void encoding();/选择哈夫曼编码方式void openfileEnco();/通过打开文件encode.txt的

3、方式进行编码void inputEnco();/通过手动输入的方式进行编码void decode();/选择译码方式void openfileDeco();/通过打开文件CodeFile.txt的方式进行译码void inputDeco();/通过手动输入的方式进行译码void dispHT(HuffmanTree nodeRoot,int level);/以缩进方式输出哈夫曼树直观图主函数字符a v e s f 频度1 2 3 4 2 主函数主要设计的是一个分支语句,让用户挑选所实现的功能。如图所示:3详细设计4调试分析在写程序与调试的过程中,发现自己对于函数的调用与参数的传递的方面还是存在

4、很多问题,从参数的类型等等方面都出现了很多问题。关于这个程序的要求比较复杂,刚开始做的时候没有任何思路,最后分模块一点一点的进行。在输出树的直观图的问题上一开始困扰了我很久,后来想到用一个level记录层数,以缩进的方式分层显示,解决了这个问题。在调试过程中,出现了很多次明明建立了文件却发现未存入数据的情况,为此我多次进行调试,发现是打开文件的操作放在了循环体内部导致数据无法写入。整体而言,整个程序主要使用了HuffmanCoding()的方式进行哈夫曼编码,在encoding()里面用了字符串的匹配进行译码,在decode()里进行了重新遍历树的过程,在算法的效率以及如何更为节省空间的存储数

5、据上都要进一步改进。5用户使用说明本程序适应环境为VC6.0 在输入字符及使用频率后可以输出哈夫曼树(以缩进方式输出哈夫曼树直观图)及哈夫曼编码6测试结果initHuffmanTree();初始化哈夫曼树HuffmanCoding()构造哈夫曼树编码调用Encoding()译码调用Decode()dispHT()打 印 哈 夫 曼树Select()供HuffmanCoding()调用文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7

6、Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A

7、2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6

8、H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10

9、Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N

10、2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6

11、V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J

12、10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B

13、4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:C

14、C6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA

15、9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD

16、7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码

17、:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5

18、HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S57附录#include#include#include /*定义赫夫曼树结点的结构体变量,存放结点的权值、字符、双亲、坐孩子和右孩子*/typ

19、edef struct int weight;char ch;/增加一个域用于存放该节点的字符 int parent,lchild,rchild;HTNode,*HuffmanTree;typedef char*HuffmanCode;/指向赫夫曼编码的指针/*本程序用到的函数原型*/void welcome();/打印操作选择界面void HuffmanCoding(HuffmanTree&,char*,int*,int);/建立赫夫曼树的算法void select(HuffmanTree HT,int j,int*s1,int*s2);/从目前已建好的赫夫曼树中选择parent 为 0 且

20、 weight 最小的两个结点void Init();/输入 n 个字符及其对应的权值,根据权值建立哈夫曼树void Coding();/编码void Decoding();/译码void Print_code();/打印译码好的代码文件void Print_tree();/以凹凸表形式打印哈夫曼树int Read_tree(HuffmanTree&);/从文件中读入赫夫曼树void find(HuffmanTree&HT,char*code,char*text,int i,int m);/译码时根据01 字符串寻找相应叶子节点的递归算法文档编码:CC6V6H8I7R5 HA9J10Q7Z1K

21、9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5

22、文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I

23、7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z

24、1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2

25、S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H

26、8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q

27、7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5void Convert_tree(unsigned char T100100,int s,int*i,int j);/将内存中的赫夫曼树转换成凹凸表形式的赫夫曼树HuffmanTree HT;/全局变量,指向存放赫夫曼树的存储空间int n=0;/全局变量,存放赫夫曼树叶子结点的数目int main()char se

28、lect;while(1)welcome();scanf(%c,&select);switch(select)case i:case I:Init();break;case c:case C:Coding();break;case d:case D:Decoding();break;case p:case P:Print_code();break;case t:case T:Print_tree();break;case e:case E:exit(1);default:printf(Input error!n);getchar();return 0;void welcome()/打印操作选择

29、界面 printf(*-*n);printf(|选择你要的操作|n);printf(|-|n);printf(|n);printf(|I-进入哈夫曼树|n);printf(|C-编码文件|n);printf(|D-删除编码|n);printf(|P-打印编码|n);文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编

30、码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5

31、 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9

32、 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文

33、档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7

34、R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1

35、K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S

36、5printf(|T-P打印哈夫曼树|n);printf(|n);printf(*-*n);/*初始化函数,输入n 个字符及其对应的权值,根据权值建立哈夫曼树,并将其存于文件hfmtree 中*/void Init()FILE*fp;int i,n,w52;/w数组存放 n 个字符的权值char character52;/存放 n 个字符printf(n输入字符个数 n:);scanf(%d,&n);/输入字符集大小printf(输入%d个字符及其对应的权值:n,n);for(i=0;in;i+)char b=getchar();scanf(%c,&characteri);scanf(%d,&

37、wi);/输入 n 个字符和对应的权值 HuffmanCoding(HT,character,w,n);/建立赫夫曼树if(fp=fopen(hfmtree.txt,w)=NULL)printf(Open file hfmtree.txt error!n);for(i=1;i=2*n-1;i+)if(fwrite(&HTi,sizeof(HTNode),1,fp)!=1)/将建立的赫夫曼树存入文件hfmtree.txt中 printf(File write error!n);printf(n建立赫夫曼树成功,已将其存于文件hfmtree.txt中n);fclose(fp);/建立赫夫曼树的算法

38、/void HuffmanCoding(HuffmanTree&HT,char*character,int*w,int n)int m,i,s1,s2;HuffmanTree p;if(n=1)return;m=2*n-1;HT=(HuffmanTree)malloc(m+1)*sizeof(HTNode);文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J1

39、0Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4

40、N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC

41、6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9

42、J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7

43、B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:

44、CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 H

45、A9J10Q7Z1K9 ZD7B4N2A2S5for(p=HT+1,i=1;ich=*character;p-weight=*w;p-parent=0;p-lchild=0;p-rchild=0;for(;ich=0;p-weight=0;p-parent=0;p-lchild=0;p-rchild=0;for(i=n+1;i=m;+i)select(HT,i-1,&s1,&s2);HTs1.parent=i;HTs2.parent=i;HTi.lchild=s1;HTi.rchild=s2;HTi.weight=HTs1.weight+HTs2.weight;/*从 HT1 到 HTj 中选

46、择 parent 为 0且 weight 最小的两个结点,用s1 和 s2 返回其序号*/void select(HuffmanTree HT,int j,int*s1,int*s2)int i;/找 weight 最小的结点for(i=1;i=j;i+)if(HTi.parent=0)*s1=i;break;for(;i=j;i+)if(HTi.parent=0)&(HTi.weightHT*s1.weight)*s1=i;HT*s1.parent=1;/找 weight 次小的结点for(i=1;i=j;i+)if(HTi.parent=0)*s2=i;break;for(;i=j;i+)

47、if(HTi.parent=0)&(i!=*s1)&(HTi.weightHT*s2.weight)*s2=i;/*对文件 tobetrans中的正文进行编码,然后将结果存入文件codefile中*/void Coding()FILE*fp,*fw;int i,f,c,start;char*cd;HuffmanCode HC;文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I

48、7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z

49、1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2

50、S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H8I7R5 HA9J10Q7Z1K9 ZD7B4N2A2S5文档编码:CC6V6H

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com