首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
单链表有环,是指单链表的最后一个结点的指针指向了链表中的某个结点(通常单链表的最后一个结点的指针域是为空的)。试编写算法判断单链表是否存在环。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++语言描述算法,关键之处给出注释
单链表有环,是指单链表的最后一个结点的指针指向了链表中的某个结点(通常单链表的最后一个结点的指针域是为空的)。试编写算法判断单链表是否存在环。 (1)给出算法的基本设计思想。 (2)根据设计思想,采用C或C++语言描述算法,关键之处给出注释
admin
2018-07-17
55
问题
单链表有环,是指单链表的最后一个结点的指针指向了链表中的某个结点(通常单链表的最后一个结点的指针域是为空的)。试编写算法判断单链表是否存在环。
(1)给出算法的基本设计思想。
(2)根据设计思想,采用C或C++语言描述算法,关键之处给出注释。
(3)说明你所设计算法的时间复杂度和空间复杂度。
选项
答案
(1)算法的基本设计思想: 设置两个指针(slow,fast),初始时都指向头结点,slow每次前进1步,fast每次前进2步。如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。当然,当fast先进入到尾部为NULL,则说明链表中不存在环。 (2)算法的实现如下: bool IsExitsLoop(list *head) { list*slow=head, *fast=head; //定义两个指针 while(fast&&fast—>next) //都不空 { slow=slow—>next; fast=fast—>next—>next, if(slow==fast) //相遇,存在环 break; } return !(fast==NULL||fast—>next==NULL); } 当fast若与slow相遇时,slow肯定没有走遍历完链表,故算法的时间复杂度为O(N),空间复杂度为O(1)。
解析
转载请注明原文地址:https://www.kaotiyun.com/show/f8Ri777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
标志着南京国民政府在全国范围内形式上完成统一的事件是()。
汉武帝时派唐蒙领千人,携带食物丝织品等到夜郎进行活动。稍后,汉在巴蜀之南置()。
二战后期,反法西斯同盟国召开了一系列会议、达成了一系列协议,以解决战后世界的安排问题,这些会议中以()最为重要,所以,我们将二战后的国际关系格局称为()。
下列关于湘军的叙述中不正确的是()。
1920年,苏俄农民中流传着这样的说法:“土地属于我们,面包却属于你们;水属于我们,鱼却属于你们;森林属于我们,木材却属于你们”,它反映的是战时共产主义政策()。
阅读材料,回答以下问题:材料一:甘地认为,非暴力抵抗是印度争取摆脱殖民桎梏的唯一正确办法;同时,他认为非暴力抵抗并不意味着对外国统治和其他罪恶的屈服。他写道:“我深信假如只有在怯懦和暴力两者之间加以选择时,我将劝人选择暴力……我宁愿要印度用暴力来保护自己
列宁称马克思、恩格斯是“19世纪人类三个最先进国家中三种主要思潮的继承人和天才的完成者”。这里“三个最先进国家”指的是()。
IP数据报的报文格式如下图所示。在没有选项和填充的情况下,报头长度域的值为()。
若干个等待访问磁盘者依次要访问的柱面为20,44,40,4,80,12,76,假设每移动一个柱面需要3毫秒时间,移动臂当前位于40号柱面,请按下列算法分别计算为完成上述各次访问总共花费的寻找时间。(1)先来先服务算法;(2)最短寻找时间
现有一个解决无向连通图的最小生成树的一种方法如下:将图中所有边按权重从大到小排序为(el,e2,…,em);i=1;while(所剩边数>=顶点数){从图中删去ei;若图不再连通。则恢复ei;i=
随机试题
麻醉前常规应用抗胆碱药物的主要目的是
在我国,劳务派遣单位的注册资本不得低于
下列哪个是天然的高分子成膜材料
金合金抛光所用抛光剂是
给消费者、病人、医务人员提供正确、合适的药品或与药品有关的信息,是只接受公正、公平、合理的职业报酬,是
对监理规划的审核,其审核内容包括( )。
甲2008年应缴纳个人所得税( )元。丁2008年11月应缴纳个人所得税( )元。
甲股份有限公司(以下简称“甲公司”)20×4年为实现产业整合,减少同业竞争实施了一项企业合并,与该项企业合并及合并后相关的交易事项如下:(1)3月20日,甲公司与其控股股东(P公司)及独立第三方S公司分别签订股权购买协议,从P公司购买其持有的乙公司60%
下列句子中标点符号的使用,正确的一项是:
非常有意思的是,一个半世纪前,贵国[美国]著名的哲学家、杰出的哈佛人—爱默生先生,也对中国的传统文化情有独钟。他在文章中摘引孔孟的言论很多。他还把孔子和苏格拉底、耶稣相提并论,认为儒家道德学说,“虽然是针对一个与我们完全不同的社会,但我们今天读书仍受益匪浅
最新回复
(
0
)