实验1 :唯一可译码的判定 学生姓名: 学 号: 一、实验室名称:信息论基础课程组 二、实验项目名称:唯一可译码的判定 三、实验原理: 给定一个已知的码C,利用 A
Sardinass 和 G
Patterson 于 1957 年提出的算法判定码C 是否为唯一可译码
四、实验目的: (1)进一步熟悉唯一可译码判决准则; (2)掌握 C语言字符串处理程序的设计和调试技术
五、实验内容: 给定一个已知的码C,判定码C 是否为唯一可译码
六、实验器材(设备、元器件): PC 机一台,装有 VC++6
0 或其它 C 语言集成开发环境
七、实验步骤及操作: 1.考查码C 中所有的码子,若iW 是jW 的前缀,则将相应的后缀作为一个尾随后缀码放入集合1F 中; 2.考查 C 和kF 两个集合,若CWi 是kjFW 的前缀或kiFW 是CWj 的前缀,则将相应的后缀作为尾随码放入集合1kF中; 3.kkFF 即为码C 的尾随集合; 4.若 F 中出现了 C 中的元素,则算法终止,返回假(C 不是唯一可译码),否则若 F 中没有出现新的元素,则返回真
八、实验数据及结果分析: 题目:教材 P103 例 5
#inclu de #inclu de #inclu de #inclu de u sing namespace std; #define ISSAME 0 #define ISPREFIX 1 #define NOTPREFIX 2 #define ISUDC 0 //唯一可译码 #define ISRTC 1 //即时码 #define NOTUDC 2 //非唯一可译码 typedef vector pCharVector; /*************************************************