文章

314

粉丝

1

获赞

107

访问

61.6k

头像
2019年(408)计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年12月6日 16:49
阅读数 81


评分及理由

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

学生第一次识别结果未直接回答问题(1),但第二次识别结果明确回答“使用链式存储结构”,与标准答案一致。因此得2分。

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

学生描述了带头结点的空队列,并给出了队空条件 `front == rear`,这与标准答案思路一致。但队满条件 `(rear + 1) % n == front` 是针对顺序存储(循环数组)的判满方式,不适用于题目要求的链式存储结构(空间只增不减,理论上不存在传统“队满”)。标准答案中通过判断 `Q.front == Q.rear->next` 来检测是否需要新增结点,这是一种实现策略。学生的判满条件存在逻辑错误,不符合题目要求的链式存储特性。因此,队空条件正确得2分,队满条件错误扣2分。本小题得2分。

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

学生回答“第一个结点入队后,rear指针后移”,描述过于简略,没有画出状态图,也未说明front和rear的具体指向变化,未能清晰展示入队后的队列结构。根据题目要求“画出”,应给出图示或更详细的文字描述。因此,此回答不完整,扣1分,得1分。

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

学生的入队操作伪代码存在逻辑错误:`p->next = rear->next;` 紧接着 `rear->next = p;` 会导致新结点p指向自身(因为执行`p->next = rear->next;`时,`rear->next`尚未更新,仍指向p),无法正确形成链表。出队操作 `front = head->next->next; free(head->next);` 逻辑混乱,未正确返回队头元素,且操作对象不清晰(涉及head, front)。整个过程未能保证O(1)时间复杂度(因涉及长度n的取模运算)且逻辑错误。因此,本小题不得分,得0分。

题目总分:2+2+1+0=5分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发