首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
考研
假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间,例如,“loading”和“being”的存储映像如下图所示。 设str1和str2分别指向两个单词所在单链表的头结点,链表结点结构为,请设计一个时间上尽可能高效的算
假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间,例如,“loading”和“being”的存储映像如下图所示。 设str1和str2分别指向两个单词所在单链表的头结点,链表结点结构为,请设计一个时间上尽可能高效的算
admin
2015-12-30
97
问题
假定采用带头结点的单链表保存单词,当两个单词有相同的后缀时,则可共享相同的后缀存储空间,例如,“loading”和“being”的存储映像如下图所示。
设str1和str2分别指向两个单词所在单链表的头结点,链表结点结构为
,请设计一个时间上尽可能高效的算法,找出由str1和str2所指向两个链表共同后缀的起始位置(如图中字符i所在结点的位置p)。
要求:
给出算法的基本设计思想。
选项
答案
顺序遍历两个链表到尾结点时,并不能保证两个链表同时到达尾结点。这是因为两个链表的长度不同。假设一个链表比另一个链表长k个结点,我们先在长链表上遍历k个结点,之后同步遍历两个链表,这样就能够保证它们同时到达最后一个结点。由于两个链表从第一个公共结点到链表的尾结点都是重合的,所以它们肯定同时到达第一个公共结点。 [*] 算法的基本设计思想: ①分别求出str1和str2所指的两个链表的长度m和n; ②将两个链表以表尾对齐(如上图所示):令指针p、q分别指向str1和str2的头结点,若m>=n,则使p指向链表中的第m-n+1个结点;若m<n,则使q指向链表中的第n-m+1个结点,即使指针p和q所指的结点到表尾的长度相等。 ③反复将指针p和q同步向后移动,并判断它们是否指向同一结点。若p和q指向同一结点,则该点即为所求的共同后缀的起始位置。
解析
转载请注明原文地址:https://kaotiyun.com/show/4Kxi777K
本试题收录于:
计算机408题库学硕统考专业分类
0
计算机408
学硕统考专业
相关试题推荐
下列不属于凯末尔主义内容的是()。
佛教在从印度向外传播的过程中分为两大流派,其中小乘佛教又称为()。
波兰三次被瓜分的时间是()
中国历史上第一部资产阶级革命法典《临时约法》公布的时间是()。
苏州的踹工、织工、纸工、烛业工人,景德镇的陶瓷工、门头沟的煤矿工、北京的香工,云南的矿工、广州的织工、陕西的木工和铁工等,均爆发过反对雇主克扣工价、开除工匠和要求增加工银的()斗争。
二战期间,下列四次战役的时间先后顺序是()①莫斯科战役②诺曼底登陆③不列颠之战④阿拉曼战役
简述罗马共和国早期平民反贵族斗争的原因、过程和意义。
二月革命后,俄国为什么会出现两个政权并存的局面?
图的D搜索类似于BFS,不同之处在于使用栈代替BFS中的队列,入/出队列的操作作为入/出栈的操作,即当一个顶点的所有邻接结点被搜索后,下一个搜索出发点应该是最近入栈(栈顶)的顶点。(1)用邻接表作为存储结构,写一个D搜索算法;(2)用D搜索方法
一个使用选择性重传协议的数据链路层协议,如果采用了5位的帧序列号,那么可以选用的最大窗口是()。
随机试题
下列不属于吗啡的临床用途的是
男,55岁。1年前行胶质瘤手术。间断服用丙戊酸钠治疗,今又再发四肢抽搐伴有尿失禁,呼之不应、对疼痛刺激无反应近1小时急送医院,最大的可能是
根据仲裁法,下列属于无效的仲裁协议的是()。
元朝日寸,被马可波罗称为“东方第一大港”的是福建泉州港。()
结合具体作品谈谈海顿的交响曲创作。
古人行文简略,优秀的作品常常“字不虚设”,阅读者决定不予深究的地方,有可能正是作者用心良苦之所在。因此我们阅读时不宜有所偏,应该像作家写作这些文章时那样“_______”。填入画横线部分最恰当的一项是:
(2010下监理)某信息系统工程由于承建单位原因,导致实施进度严重超期,监理单位准备就此问题召集业主单位、承建单位召开专题会议协商解决,此时给承建单位发出______是最合适的。
一个类可以从直接或间接的祖先中继承所有属性和方法。采用这个方法提高了软件的【】。
Whydidthemansellhisoldcar?
Whydomostparentsfeelembarrassedwhentheirchildrengraduatefromhighschool?
最新回复
(
0
)