文章
35
粉丝
0
获赞
1
访问
4.6k
(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)得分及理由
得分:1分(满分3分)
理由:学生的设计思想描述不够清晰,仅提到“逆置”和“取节点”的交替操作,但未明确说明如何实现链表的拆分、反转和合并。虽然思路方向正确(涉及反转操作),但缺乏具体步骤和逻辑完整性,无法体现对问题的全面理解。
(2)得分及理由
得分:2分(满分8分)
理由:
Reverse(p)
未定义且调用位置错误,会导致无限循环或未定义行为;q
未初始化直接使用。(3)得分及理由
得分:1分(满分2分)
理由:时间复杂度分析结论正确(O(n)),但未结合具体步骤(如反转和合并的复杂度)展开说明,分析过于简略。
题目总分:1+2+1=4分
登录后发布评论
暂无评论,来抢沙发