首页 > 编程知识 正文

表达式求值数据结构实验报告(构造哈夫曼树实验报告C语言,数据结构实验报告(c语言)哈夫曼实验)

时间:2023-05-05 13:18:29 阅读:121574 作者:1299

《数据结构实验报告(c语言)痴情的航空实验》可供会员共享,在线阅读。 更多相关《数据结构实验报告(c语言)痴情的航空实验(12页珍藏版)》请在人人文库网搜索。

1、暨南大学本科实验报告专用纸课程名称数据结构成绩评定实验项目名称痴情航空篇/解码器指导教师axdm实验项目号5实验项目类型实验地点学生姓名谢显栾学号2009051718学院电气信息学院系专业软件工程实验时间2010年11月20日中午11月20日下午(一)实验目的通过实验,了解木塑数据结构应用及相关具体步骤操作, 熟悉(二)实验内容和需求问题说明利用痴情航空码进行通信,可以大大提高信道利用率,缩短信息传输时间,降低传输成本。 这需要在发送侧用一个编码系统预先编码发送数据,并且在接收侧解码(恢复)发送的数据。 对于双工通道。

2、双向传输信息的通道),每个终端都需要完整的编辑/解码系统。 试着为这样的信息收发站写一个痴情的航空代码编辑/解密系统。 基本上完整的系统需要(1) I )初始化(Initialization )功能。 从终端读取字符集大小n、n个字符和n个权重,创建痴情航空树,保存在文件hfm树中。 )2) e )编码(编码)。 利用建设的痴情航空树(无内存,从文件hfmTree读取),对文件ToBeTran的正文进行编码,并将结果存储在文件CodeFile中。 (3) d )解码(解码)。 利用建设的痴情航空树对文件编码文件的代码进行解码,并将结果保存在文件TextFile中。

3、(4) p :打印代码文件(打印)。 以紧凑的格式在终端上显示文件CodeFile。 每行50个代码。 此字符格式的编码文件也写入文件代码prin。 (5) t )印有痴情的航空树。 用直观的方法(树或凹表形式)在终端上显示已经在内存中的痴情航空树,同时将该文字形式的痴情航空树写入文件TreePrint。 测试数据(1)使用以下问题的数据调试器: 一个系统在通信联络中只出现8种文字。 其概率分别为0.25、0.29、0.07、0.08、0.14、0.23、0.03、0.11,试制了痴情的航空代码。 )2)利用下表所示字符集和频率实际统计数据构建痴情航空树,实现以下消息的编码:

4、解码:“THIS PROGRAM IS MY FAVORITE”。 文字A B C D E F G H I J K L M频率1866413223210321154757575720文字N O P Q R S T U V W X Y Z频率576315485180231818116(3) ) ) ) ) ) ) ) ) ) ) 塔塔实验环境: windows 7双赢TC (四)源程序# include # include # include # include intn; 结构节点输入w; Int标志; char c; 结构号。

5、de *plink、*llink、*rlink; char code50; *num100,*根; FILE *fp char tmpcode50; int t=0; 语音主(语音) int i; 语音设置(语音; 语音代码(语音; 语音编码(语音; 语音盘(语音; root=(结构节点* ) malloc ) sizeof (结构节点); wile(1) start : puts (1. initializationn2. encoding n3. decoding n4. printn5. treeeprintin。

六、g; wile (扫描) %d,I )!=1) while (获取器)!=n ) continue; 输入错误; puts(pleaserepeatagain ); puts (1. initializationn2. encoding n3. decoding n4. printn5. tree printing ); 交换机(I )情况1: set tree ); 布雷克; case 2:代码(; 布雷克; case 3:解码(; 布雷克; case 4:disp (; 布雷克; case53360exit(0; d fault : puts (输入错误)。

7、) puts(pleaserepeatagain; goto start; getch (; 语音(语音) int i,j,k; 结构节点* P1、*p2、*tmp、*p; Void Go (结构节点*; 语音代码(结构节点*; 语音打印机(结构节点*; puts (pleaseinputthequantityofcharacters ); 扫描(% d,n ); wile (获取器)!=n ) continue; for(I=0; ic; wile (获取器)!=。

8、

n)continue;puts(please input the weight of the Character);scanf(%d,&p-w);while(getchar()!=n)continue;p-plink=NULL;p-rlink=NULL;p-llink=NULL;numi=p;for(i=0;iwnumj-w)tmp=numi;numi=numj;numj=tmp;numn=NULL;k=n;while(num1!=NULL)p=(struct node *)malloc(sizeof(struct node);p1=num0;p2=num1;p-llink=p1;p-rlin。

9、k=p2;p-plink=NULL;p1-plink=p;p2-plink=p;p-w=p1-w+p2-w;for(i=1;iwnumj-w)tmp=numi;numi=numj;numj=tmp;root=num0;if(fp=fopen(f:texttexthfmtree.wxl,wb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);setcode(root);go(root);fclose(fp);void setcode(struct node *p)if(p-llink=NULL&p-rlink=NULL)tmpcodet=0;strcpy。

10、(p-code,tmpcode);elsetmpcodet+=0;setcode(p-llink);t-;tmpcodet+=1;setcode(p-rlink);t-;void go(struct node *p)if(p-llink=NULL&p-rlink=NULL)fputc(,fp);fputc(p-c,fp);fputs(p-code,fp);fputc(),fp);elsego(p-llink);go(p-rlink);void code(void)FILE *fp1,*fp2,*fp3;char ch1,ch2,c;if(fp1=fopen(f:texttexthfmtree.。

11、wxl,rb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);if(fp2=fopen(f:texttexttobetran.txt,rb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);if(fp3=fopen(f:texttextcodefile.wxl,wb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);while(ch1=fgetc(fp2)!=EOF)t=0;while(ch2=fgetc(fp1)!=EOF)if(ch1=ch2)while(c=fg。

12、etc(fp1)!=)tmpcodet+=c;tmpcodet=0;fputs(tmpcode,fp3);fputc(,fp3);rewind(fp1);break;fclose(fp1);fclose(fp2);fclose(fp3);void decode(void)FILE *fp1,*fp2,*fp3;char ch1,ch2,ch3;char temp_320;char temp_120;int t1,t3;if(fp1=fopen(f:texttexthfmtree.wxl,rb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);if(fp。

13、2=fopen(f:texttexttextfile.txt,wb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);if(fp3=fopen(f:texttextcodefile.wxl,rb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);while(ch3=fgetc(fp3)!=EOF)t3=0;while(ch3!=)temp_3t3+=ch3;ch3=fgetc(fp3);temp_3t3=0;while(ch1=fgetc(fp1)!=EOF)if(isalpha(ch1)ch2=ch1;t1=。

14、0;while(ch1=fgetc(fp1)!=)temp_1t1+=ch1;temp_1t1=0;if(strcmp(temp_1,temp_3)=0)fputc(ch2,fp2);rewind(fp1);break;fclose(fp1);fclose(fp2);fclose(fp3);getch();void disp(void)FILE *fp1,*fp2;char ch1,ch2;char tmp20;int t;if(fp1=fopen(f:texttexthfmtree.wxl,rb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);if。

15、(fp2=fopen(f:texttexthfmcode.txt,wb)=NULL)puts(FILE OPEN ERROR);getchar();exit(0);while(ch1=fgetc(fp1)!=EOF)if(ch1=()t=0;ch1=fgetc(fp1);ch2=ch1;while(ch1=fgetc(fp1)!=)tmpt+=ch1;tmpt=0;printf(%c-%sn,ch2,tmp);fputc(ch2,fp2);fputc(-,fp2);fputc(-,fp2);fputc(-,fp2);fputs(tmp,fp2);fputc(n,fp2);fclose(fp1)。

16、;fclose(fp2);(五) 数据调试首先建立准备好调试环境,本次试验将文本的建立与存储都放置在F:/目录下1. 运行程序,选择1项,进行编码表的输入输入完成后在目录下生成hfmtree.wxl文件2. 在目录下创建tobetran.txt文件,将“this program is my favorite”输入其中,在原程序中继续选择第二项编码操作,生成该句子的编码,并存储在codefile.wxl文件中。3. 运行程序第三项译码,翻译codefile中的编码,将所得语句存储在textfile.txt文件中4. 在原程序中显示痴情的航空数,并将其写入文件Treeprint.txt.(六) 实验结果与分析试验结果基本无误。12。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。