文章

296

粉丝

0

获赞

0

访问

21.8k

头像
2015年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年11月8日 10:56
阅读数 117


评分及理由

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

得分:3分

理由:学生的基本设计思想与标准答案完全一致,都是使用辅助数组记录已出现的绝对值,通过一趟扫描链表实现删除重复绝对值结点的功能。思路正确且描述清晰。

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

得分:2分

理由:单链表结点的数据类型定义正确,使用了typedef定义结构体类型,包含data和next(标准答案中为link,但next是常见的命名,不扣分)两个成员。

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

得分:6分

理由:算法整体思路正确,但存在以下问题:
1. 函数返回类型为int,但实际没有正确返回有意义的值,且题目要求是删除操作,应该返回void(扣1分)
2. 数组B的大小为n,但应该为n+1,因为|data|≤n,可能的绝对值范围是0到n(扣1分)
3. 当p->data≥n时直接return 0,这会提前结束函数,应该处理这种情况而不是直接返回(扣1分)
4. 缺少对辅助数组B的初始化(虽然代码中有int B[n] = 0,但这在C语言中只能初始化第一个元素,不是全部初始化)(扣1分)
5. 缺少释放辅助空间的代码(扣1分)
算法核心逻辑正确,但上述实现细节存在问题。

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

得分:1分

理由:时间复杂度O(m)正确,但空间复杂度max(O(m), O(n))表述不准确,应该是O(n),因为辅助数组大小与n相关,与m无关(扣1分)。

题目总分:3+2+6+1=12分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发