文章

50

粉丝

0

获赞

0

访问

2.4k

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

(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分)

得分:4分

理由:学生的基本设计思想描述正确,与标准答案一致,使用双指针方法通过一趟扫描找到倒数第k个结点。但未明确说明初始时指针指向头结点的下一个结点(即第一个实际结点),而直接说“指向链表头指针”,这里存在表述不严谨,扣1分。

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

得分:3分

理由:学生描述了大致步骤,但存在以下问题:①未明确初始化count或索引计数(仅用i代替,但未说明i的初始值);②未处理k=0或k大于链表长度的情况(仅提到“当i小于k,fir没有后一个结点时返回0”,但逻辑不完整);③未说明循环终止条件(fir到...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发