3 重 庆 大 学 学 生 实 验 报 告 实验课程名称 信息理论基础 开课实验室 学 院 数学与统计 年级 2 0 0 8 专业班 信息2 班 学 生 姓 名吕临颖 学 号 ******** 开 课 时 间 2 0 1 0 至 2 0 1 1 学年第 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 中没有出现新的元素,则返回真
四.实验环境及实验文件存档名 实验环境:visual C++ 6
0 文件名 :唯一可译码判别准则
cpp 五.实验结果及分析 #include #include #include struct strings { char *string; struct strings *nex