文章
253
粉丝
21
获赞
1
访问
10.1k

评分及理由
(1)得分及理由(满分3分)
得分:3分
理由:学生的基本设计思想与标准答案一致,都是使用辅助数组记录已出现的绝对值,通过一趟扫描链表实现删除重复绝对值结点的功能。思路正确完整,没有逻辑错误。
(2)得分及理由(满分2分)
得分:1分
理由:学生给出了单链表结点的数据类型定义,包含了data和next指针,基本正确。但存在以下问题:
1. 结构体定义中缺少分号结尾(可能是识别问题)
2. 指针字段命名为"next"而非标准答案的"link",但这不影响功能,属于合理命名
3. 成员顺序与常规习惯不同(指针在前,数据在后),但语法正确
扣1分主要是由于结构体定义不够规范完整。
(3)得分及理由(满分8分)
得分:5分
理由:算法实现基本正确,但有重要逻辑错误:
1. 在删除结点时,没有释放被删除结点的内存,存在内存泄漏问题(扣2分)
2. 在else分支中,当保留结点时,指针p没有向后移动,会导致死循环(扣1分)
3. 数组A[n]的大小应该是n+1,因为绝对值范围是0到n(扣1分)
4. 函数参数中n未定义,应该是传入参数(可能是识别问题,不扣分)
算法整体框架正确,但存在上述逻辑错误。
(4)得分及理由(满分2分)
得分:2分
理由:学生正确分析了算法的时间复杂度O(m)和空间复杂度O(n),与标准答案一致。
题目总分:3+1+5+2=11分
登录后发布评论
暂无评论,来抢沙发