文章

50

粉丝

0

获赞

0

访问

2.4k

头像
2009年计算机学科专业基础综合试题 - 第42题回答
数据结构
发布于2025年9月9日 16:11
阅读数 40

(1)设置2个指针,第一个指针先前进到指针第k个位置,然后第二个指针再和第一个指针同时前进,当第一个指针到达链表尾结点时,第二个指针所在位置就是倒数第k个位置
(2)设置指针fir,sec指向链表头指针,设置i表示fir指向哪个结点,当i小于k,i++,fir指向后一个结点,然后让fir和sec同时增加,当fir没有后一个结点时返回sec所指结点的值,当i小于k,fir没有后一个结点时返回0。
(3)
int find(node* list){

     node* fir=list;

     node* fir=list;

     for(int i=0;i<k;i++){

     if(fir->link==null){

       return 0;

     }

     fir=fir->link;
     }
     while(fir->link!=null){
      fir=fir->link;

      sec=sec->link'

    }

return sec->data;

}


评分及理由

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

得分:5分

理由:学生的基本设计思想与标准答案一致,描述清晰。通过两个指针(fir和sec),先让fir移动k步,然后两个指针同步移动,当fir到达链表尾部时,sec指向倒数第k个结点。思路正确且高效,符合一趟扫描的要求。

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

得分:3分

理由:学生描述了大致步骤,但存在细节错误和表述不严谨。例如:
① 初始时fir和sec应指向头结点的下一个结点(即第一个实际结点),但学生写的是“指向链表头指针”,而头指针通常指向头结点(表头结点),这里表述不准确。
② 步骤中未明确计数变量i的初始值和更新条件,...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发