文章

100

粉丝

0

获赞

0

访问

10.6k

头像
2020年计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年8月28日 17:30
阅读数 30

(1)Trie树(字典树)适宜保存上述具有前缀特性的不等长编码。

(2)译码过程(基于Trie树):

  • 从Trie树的根节点开始,遍历0/1串的每一位。

  • 对于每一位,如果是0则移动到左子节点,如果是1则移动到右子节点。

  • 当到达叶子节点时,输出该叶子节点对应的字符,并返回到根节点继续处理后续的0/1串。

  • 重复上述过程直到0/1串结束。

(3)判定前缀特性的过程:

  •  

    • 初始化一个空的Trie树。

    • 依次插入每个字符的编码:

      • 遍历编码的每一位,沿Trie树向下移动(若不存在子节点则创建)。

      • 如果插入过程中遇到一个已有的叶子节点(说明当前编码是另一个编码的前缀),或者插入完成时停在非叶子节点(说明已有编码是当前编码的前缀),则不具有前缀特性。

    • 若所有编码成功插入且未发生上述冲突,则具有前缀特性。


评分及理由

(1)得分及理由(满分4分)

学生回答使用Trie树(字典树)保存编码,这与标准答案中提到的二叉树(或哈夫曼树)在功能上是等价的,因为Trie树同样可以表示前缀无关编码,且能够高效支持前缀检查。思路正确,表述清晰,因此得满分4分。

(2)得分及理由(满分3分)

学生基于Trie树描述了译码过程:从根节点开始,按0/1位移动,到达叶子节点输出字符并返回根节点继续。该过程与标准答案中基于二叉树的译码过程完全一致,思路正确且步骤详细,因此得满分3分。

(3)得分及理由(满分3分)

学生描述了使用Trie树判定前缀特性的过程:插入编码时检查是否遇到叶子节点(说明当前编码是其他编码的前缀)或插入完成停在非叶子节点(说明其他编码是当前编码的前缀)。该方法是判定前缀特性的标准方法之一,与标准答案中“构造二叉树(字符只能存在叶结点)”的思路一致,且逻辑完整,因此得满分3分。

题目总分:4+3+3=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发