1 / 10
文档名称:

哈弗曼编译码器 (罗忠霖).doc

格式:doc   大小:210KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

哈弗曼编译码器 (罗忠霖).doc

上传人:花花世界 2019/1/27 文件大小:210 KB

下载得到文件列表

哈弗曼编译码器 (罗忠霖).doc

相关文档

文档介绍

文档介绍:2010级计算机科学与技术专业集美大学计算机工程学院2011~2012学年第一学期:..《数据结构》实验报告题目:实验五哈夫曼编/译码器学号:2010810072成绩班级:计算1013日期::罗忠霖指导老师:杨艳华一、实验目的:本次的实验目的在于使读者深入了解树的特性,以便在实际问题背景下灵活运用他们;同时还将巩固掌握对树结构的构造方法的理解,并且回顾文件操作的使用。二、实验环境:本次试验在VC++环境下调试。三、实验内容与完成情况:,缩短信息传输的时间,降低传输成本。但是这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码。对于双工信道,每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼码的编/译码系统。:(1)初始化,构造哈弗曼树。(2)编码。(3)译码。(4)印代码文件。(5)印哈弗曼树。#include<>#include<>#include<>#include<>typedefstruct{ charchr1; intweight; intparent,lchild,rchild;}HTNode,*HuffmanTree;typedefstruct{ charchr; intw1; char*code;//编码}Ch;//字符和对应的权值及编码voidSelect(HuffmanTree&HT1,intj,int&s1,int&s2);voidHuffmanCoding(HuffmanTree&HT,Ch*w,intn);//构造哈夫曼树HTvoidencoding(HuffmanTree&HT,Ch*ch,intn);//求每个字符的哈夫曼编码voidEncoding(Ch*ch1,intn);//编码voidDecoding(HuffmanTree&HT,intsum);//译码voidcaidan();voidPrintf();voidmain(){ FILE*p; intchoice,n1,w2=1; inti,flag=1,m; charch; HuffmanTreeHTr; Ch*c;caidan(); while(flag) { loop:printf("\n*请选择(0-5):"); scanf("%d",&choice); switch(choice) { case1:printf("请输入字符集大小n="); scanf("%d",&n1); c=(Ch*)malloc((n1+1)*sizeof(Ch)); flushall(); for(i=1;i<=n1;i++) { printf("请输入字符及其权值:"); scanf("%c%d",&ch,&w2); c[i].chr=ch;c[i].w1=w2; flushall(); } HuffmanCoding(HTr,c,n1); encoding(HTr,c,n1); break; case2:Encoding(c,n1); break; c