为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 实验1唯一可译码的判别准则

实验1唯一可译码的判别准则

2023-01-19 6页 pdf 165KB 22阅读

用户头像 个人认证

is_081822

暂无简介

举报
实验1唯一可译码的判别准则3重庆大学学生实验报告实验课程名称信息理论基础开课实验室学院数学与统计年级2008专业班信息2班学生姓名吕临颖学号********开课时间2010至2011学年第1学期总成绩教师签名数理学院制开课学院、实验室:实验时间:2010年12月30日实验项目实验项目类型唯一可译码的判别准则名称验证演示综合设计其他指导教师李东成绩√√√√一.实验目的(1)进一步熟悉唯一可译码的判别准则;(2)掌握C++语言处理字符串的相关方法。二.实验内容(1)已知:信源符号数和码字集合C;(2)输出:输入:任意的一个码,码字的个数和每个具体的码字在运...
实验1唯一可译码的判别准则
3重庆大学学生实验报告实验课程名称信息理论基础开课实验室学院数学与统计年级2008专业班信息2班学生姓名吕临颖学号********开课时间2010至2011学年第1学期总成绩教师签名数理学院制开课学院、实验室:实验时间:2010年12月30日实验项目实验项目类型唯一可译码的判别准则名称验证演示综合设计其他指导教师李东成绩√√√√一.实验目的(1)进一步熟悉唯一可译码的判别准则;(2)掌握C++语言处理字符串的相关方法。二.实验内容(1)已知:信源符号数和码字集合C;(2)输出:输入:任意的一个码,码字的个数和每个具体的码字在运行时从键盘输入(3)输出:作出判决,若是唯一可译码,返回1,否则返回0;三.实验原理根据唯一可译码的判别方法,利用数据结构所学的知识,定义字符串数据类型并利用指针进行编程来实现算法。算法:1、考察C中所有的码字,若Wi是Wj的前缀,则将对应的后缀作为一个尾随后缀码放入集合Fi+1中;2、考察C和Fi俩个集合,若Wi∈C是Wj∈F的前缀或Wi∈F是Wj∈C的前缀,则将相应的后缀作为尾随后缀码放入集合Fi+1中;3、F=∪Fi即为码C的尾随后缀集合;4、若F中出现了C中的元素,算法终止,返回假(C不是唯一可译码);否则若F中没有出现新的元素,则返回真。四.实验环境及实验文件存档名实验环境:visualC++6.0文件名:唯一可译码判别准则.cpp五.实验结果及分析#include#include#includestructstrings{char*string;structstrings*next;};structstringsFstr,*Fh,*FP;//输出当前集合voidoutputstr(strings*str){do{cout<string<next;}while(str);cout<b?b:a;}inlineintMAX(inta,intb){returna>b?a:b;}#definelength_a(strlen(CP))#definelength_b(strlen(temr))//判断一个码是否在一个码集合中,在则返回0,不在返回1intcomparing(strings*st_string,char*code){while(st_string->next){st_string=st_string->next;if(!strcmp(st_string->string,code))return0;}return1;}//判断两个码字是否一个是另一个的前缀,如果是则生成后缀码voidhouzhui(char*CP,char*tempPtr){if(!strcmp(CP,tempPtr)){cout<<"集合C和集合F中有相同码字:"<next=NULL;cp_temp->string=newchar[abs(length_a-length_b)+1];char*longstr;longstr=(length_a>length_b?CP:tempPtr);//将长度长的码赋给longstr//取出后缀for(intk=MIN(length_a,length_b);kstring[k-MIN(length_a,length_b)]=longstr[k];cp_temp->string[abs(length_a-length_b)]=NULL;//判断新生成的后缀码是否已在集合F里,不在则加入F集合if(comparing(Fh,cp_temp->string)){FP->next=cp_temp;FP=FP->next;}}}voidmain(){//功能提示和程序初始化准备cout<<"\t\t唯一可译码的判断!\n"<string=newchar[strlen(c)];strcpy(Ch->string,c);Ch->next=NULL;charf[]="F:";Fh->string=newchar[strlen(f)];strcpy(Fh->string,f);Fh->next=NULL;//输入待检测码的个数intCnum;cout<<"输入待检测码的个数:";cin>>Cnum;cout<<"输入待检测码"<>tempstr;CP->next=new(structstrings);CP=CP->next;CP->string=newchar[strlen(tempstr)];strcpy(CP->string,tempstr);CP->next=NULL;}outputstr(Ch);CP=Ch;while(CP->next->next){CP=CP->next;tempPtr=CP;do{tempPtr=tempPtr->next;houzhui(CP->string,tempPtr->string);}while(tempPtr->next);}structstrings*Fbegin,*Fend;Fend=Fh;while(1){if(Fend==FP){cout<<"是唯一可译码码组!"<next){CP=CP->next;tempPtr=Fbegin;for(;;){tempPtr=tempPtr->next;houzhui(CP->string,tempPtr->string);if(tempPtr==Fend)break;}}}运行结果:唯一可译码的判断!输入待检测码的个数:7输入待检测码1:a2:c3:ad4:abb5:bad6:deb7:bbcde不是唯一可译码码组!Pressanykeytocontinue教师签名年月日
/
本文档为【实验1唯一可译码的判别准则】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索