文章

480

粉丝

0

获赞

1

访问

65.7k

头像
2009年(408)计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年12月8日 10:19
阅读数 47


评分及理由

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

得分:3分

理由:学生的基本设计思想是“先求表长,再遍历到第 (n-k+1) 个结点”。这个思路是正确的,能够解决问题。但是,题目要求“设计一个尽可能高效的算法”,标准答案强调“通过链表的一趟遍历”,而学生的方案需要两趟遍历(一趟求长度,一趟找结点),效率上不如一趟扫描的算法。因此,在“尽可能高效”这一点上有所欠缺,扣2分。

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

得分:4分

理由:学生的详细实现步骤描述清晰,与设计思想一致,逻辑完整。步骤包括:① 用指针p遍历链表并记录长度length;② 判断k是否合法;③ 再次遍历到第 (length-k+1) 个结点。扣1分是因为该实现步骤对应的是两趟遍历算法,不符合题目“尽可能高效”(即一趟遍历)的要求。

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

得分:3分

理由:学生用C语言实现了算法,整体逻辑正确,能完成查找倒数第k个结点的功能。但存在以下问题:
1. 函数签名中缺少参数k(应为 `int findK(LinkNode *list, int k)`),这是一个逻辑错误,导致函数无法正确接收k值,扣1分。
2. 算法采用了两趟遍历,效率未达到最优,扣1分。
3. 代码中指针初始化和遍历逻辑正确,无其他逻辑错误。

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

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发