下列编码中,不是前缀编码的是( )。
A. {00, 01, 10, 11} B. {0, 1, 00, 11} C. {0, 10, 110, 111} D. {10, 110, 1110, 1111}
[tag_link]
正确答案:B
前缀编码要求任一码字都不是另一码字的前缀。B 中 0 是 00 的前缀,1 也是 11 的前缀,因此 B 不能即时无歧义译码。
检查时要逐个短码与所有长码的开头比较;码长不同并不自动违反前缀条件。