若任一个字符的编码都不是其他字符编码的前缀,则称这种编码具有前缀特性。现有某字符集(字符个数≥12)的不等长编码,每个字符的编码均为二进制的0、1序列,最长为L位,且具有前缀特性。请回答下列问题: 简述判定某字符集的不等长编码是否具有前缀特性的过程。

admin2021-03-17  36

问题 若任一个字符的编码都不是其他字符编码的前缀,则称这种编码具有前缀特性。现有某字符集(字符个数≥12)的不等长编码,每个字符的编码均为二进制的0、1序列,最长为L位,且具有前缀特性。请回答下列问题:
简述判定某字符集的不等长编码是否具有前缀特性的过程。

选项

答案二叉树既可用于保存各字符的编码,也可用于检测编码是否具有前缀特性。判定编码是否具有前缀特性的过程,同时也是构建二叉树的过程。初始时,二叉树中仅含有根结点,其左子指针和右子指针均为空。 依次读入每个编码C,建立,寻找从根开始对应于该编码的一条路径,过程如下: 对每个编码,从左至右扫描C的各位,根据C当前位(0或1)沿结点的指针(左子指针或右子指针)向下移动。当遇到空指针时,创建新结点,让为空的指针指向该新结点并继续移动。沿指针移动过程中,可能遇到三种情况: ①若遇到了叶结点(非根),则表明不具有前缀特性,返回; ②若在处理C的所有位的过程中,均没有创建新结点,则表明不具有前缀特性,返回; ③若处理C的最后一个编码位时创建了新结点,则继续验证下一个编码。若所有编码均通过验证,则编码具有前缀特性。

解析
转载请注明原文地址:https://kaotiyun.com/show/rT3i777K
0

相关试题推荐
最新回复(0)