2025考研

张宇、田静领衔+免费直播课

领取试听
当前位置:首页 > 每日一练 > 计算机

2020考研计算机备考考点每日一练2019.5.31-线性表(3)

2020考研计算机备考考点每日一练,备考计算机的同学注意了~启航小编每天都会为大家带来计算机考研知识点的分享,以下是今天的知识点练习~更多计算机专业课考研真题及考研资讯尽在启航考研计算机频道。

知识点-线性表

计算机考研备考每日一练

3、已知一个带有表头结点的单链表,结点结构为

data link

假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数)。若查找成功,算法输出该结点的data值,并返回1;否则,只返回0。要求:

(1)描述算法的基本设计思想;

(2)描述算法的详细实现步骤;

(3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C或C++或JAVA语言实现),关键之处请给出简要注释。

参考答案:

(1)算法基本思想如下:

从头至尾遍历单链表,并用指针P指向当前节点的前K个节点。当遍历到链表的最后一个节点时,指针P所指向的节点即为所查找的节点。

(2)详细实现步骤:

第一种方法:遍历两遍,求链表长度,再遍历第K个位置——不高效

第二种方法:增加两个指针变量和一个整型变量:

指针P1指向当前遍历的节点;指针P指向P1所指向节点的前K个节点,如果P1之前没有K个节点,那么P指向表头节点。整型变量i表示当前遍历了多少节点, 当i>k时,指针p随着每次遍历,也向前移动一个节点。当遍历完成时,p或者指向表头节点,或者指向链表中倒数第K个位置上的节点。

计算机考研备考每日一练

启航课程推荐>>>>计算机半年集训定向营》》》课时200+、全职老师高校硕博亲授、面授答疑与在线 答疑相结合更有全年复习规划指导,让你在备考过程不再迷茫

详情了解>>>>计算机半年集训定向营

更多干货请关注QQ群和微信平台,请加入启航计算机考研资料群享受客服答疑计算机考研资料QQ群: 738222741     

  计算机考研官方微信号:启航计算机考研

查看全文

【25考研辅导课程推荐】:25考研集训课程,VIP领学计划,25考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。

上一篇:2020考研计算机备考考点每日一练2019.5.30-线性表(2) 下一篇:2020考研计算机备考考点每日一练2019.6.3-树与二叉树(1)

免责声明:本平台部分帖子来源于网络整理,不对事件的真实性负责,具体考研相关内容请以各院校的官网通知为准。如果本站文章侵犯到您的权利,请联系我们(400-108-7500)进行删帖处理。

精选课程

考研资讯

查看更多

                                         

考研备考

查看更多

考研指导

搜课程

热门搜索

搜索历史  

首页

课程

成长计划

研招

我的

每日10 份   抢先预约