若要设计长短不等的编码,则其中的任意一个字符的编码都必须不是另一个字符的编码的前缀,这种编码称为前缀编码。
工具/原料
纸
笔
数据结构知识
方法/步骤
1、判断一个编码是不是前缀编码,可以根据定义,即看每个字符的编码是不是和其他字符编码的前边的数字一样。
2、我们溴溢菏确要挨个判断每个字符,从A开始。A的编码为0,只有一个数字。那么在B,C,D的编码中从前往后看一个数字分为1,1,1。1不等于0。则A的编码符合前缀编码要求。
3、然后判断B的编码是否是其他字母的编码的前缀。B的编码10明显不是C,D编码的前缀,所以B的编码符合前缀编码要求。
4、接下来判断C的编码。C编码为110,明显不是一位编码和两位编码的前缀。对于D编码111来说,从前到后并不包含110。所以C的编码符合前缀编码要求。
5、最后判断D的编码。同理,C编码从左墙绅褡孛数的头三个数字都不等于111,那两个连位数都不够的编码就更甭提了。所以D的编码符合前缀编码要求。最终,这四个编码属于前缀编码。
6、下面来练一个例子:(0,1,00,11)(000,001,010,101)(00,01,10,11)哪个不是前缀编码?明显第一个不是。
小结
1、判断要点:龀音孵茧1.要把每一个编码和其他所有编码都比一遍。2.被判断的编码有几位数字就和其他编码的前几位数栓疠瑕愤字比。3.长的肯定不是短的前缀。4.所谓前缀,便是编码中开头的前几位数字。(从左往右数)5.前缀编码:字符的编码不能是其他编码的前缀。