文章
35
粉丝
0
获赞
1
访问
4.4k
(1)第一次将a1加入线性表,然后将链表逆置,取第一个节点an,再逆置,取第一个节点a1,依次类推,直到处理完链表
(2)
typedef struct node { int data; struct node *next; } NODE;
动态申请链表指针p,
p=head->next;
head->next==NULL;
while(p) {
node* s = p;
p = p->next;
q->next = head->next;
head->next = q;
Reverse(p);
}
(3)在p指针遍历到末尾时,循环便结束,时间复杂度为O(n)
评分及理由
(1)得分及理由(满分3分)
得分:1分
理由:学生的设计思想虽然提到了逆置链表,但方法不够明确和高效。标准答案中明确分为三步:找中点、反转后半段、合并链表。而学生的思路是反复逆置链表,效率较低且逻辑不够清晰,未能完全达到题目要求的时间高效性。
(2)得分及理由(满分8分)
得分:3分
理由:学生的代码实现存在以下问题:
虽然代码框架大致正确,但关键逻辑错误较多,未能正确实现功能。
(3)得分及理由(满分2分)
得分:1分
理由:学生的时间复杂度分析正确(O(n)),但未能考虑到实际实现中的效率问题(如反复逆置链表的时间开销)。
题目总分:1+3+1=5分
登录后发布评论
暂无评论,来抢沙发